(模拟)A. Vasya and Book—— Educational Codeforces Round 55 (Rated for Div. 2)

古城微笑少年丶 2022-04-13 14:30 303阅读 0赞

传送门:A. Vasya and Book

题解:

  • 向左翻d页,如果翻超界,那就是翻到第一页;
  • 向右翻d页,如果翻超界,那就是翻到第n页。

    include

    include

    include

    include

    using namespace std;
    typedef long long ll;
    const int INF=0x3f3f3f3f;

    int main(){

    1. int t;
    2. scanf("%d",&t);
    3. int n,x,y,d;
    4. while(t--){
    5. scanf("%d%d%d%d",&n,&x,&y,&d);
    6. //if(x>y) swap(x,y); 起始页就不一样了
    7. int ans,ans1;
    8. if(x==y) ans=0;
    9. else if(abs(y-x)%d==0){
    10. ans=abs(y-x)/d;
    11. }else{
    12. ans=(x-1+d-1)/d;
    13. if((y-1)%d==0){
    14. ans+=(y-1)/d;
    15. }else ans=INF;
    16. ans1=(n-x+d-1)/d;
    17. if((n-y)%d==0){
    18. ans1+=(n-y)/d;
    19. }else ans1=INF;
    20. ans=min(ans,ans1);
    21. }
    22. if(ans==INF) ans=-1;
    23. printf("%d\n",ans);
    24. }
    25. return 0;

    }

发表评论

表情:
评论列表 (有 0 条评论,303人围观)

还没有评论,来说两句吧...

相关阅读