当前位置: 代码迷 >> 综合 >> CF1082A Vasya and Book
  详细解决方案

CF1082A Vasya and Book

热度:8   发布时间:2023-12-06 07:48:33.0

题目:A. Vasya and Book

思路:
3种方式:直接跳,调到最前面再跳回来,跳到最后面再跳回来。
要注意x可能大于y,要写abs(y-x)。

代码:

#include<bits/stdc++.h>
using namespace std;#define read(x) scanf("%d",&x)int main() {
    int T;read(T);while(T--) {
    int n,x,y,d;read(n),read(x),read(y),read(d);int ans=1+(int)1e9;if(0==(y-x)%d) ans=min(ans,abs(y-x)/d);if(0==(y-1)%d) ans=min(ans,(y-1)/d+(x-1)/d+(0!=(x-1)%d));if(0==(n-y)%d) ans=min(ans,(n-y)/d+(n-x)/d+(0!=(n-x)%d));if((1+(int)1e9)==ans) printf("-1\n");else printf("%d\n",ans);}return 0;
}
  相关解决方案