CF 1082A Vasya and Book
阿新 • • 發佈:2018-12-10
只需要判斷三次:
是否能直接從x頁翻到y頁;
是否能從第一頁翻到y頁;
是否能從最後一頁翻到y頁
#include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; const int inf=0x3f3f3f3f; int main() { int t; cin>>t; while(t--) { int n,x,y,d,ans=inf; cin>>n>>x>>y>>d; if(abs(y-x)%d==0) { ans=min(ans,abs(y-x)/d); } if((y-1)%d==0) { //ans+1 ans=min(ans,x/d+(y-1)/d+(x%d==0?0:1)); }//在它前面一個啊 if((n-y)%d==0) { ans=min(ans,(n-x)/d+(n-y)/d+((n-x)%d==0?0:1)); } if(ans==inf) cout<<-1<<endl; else cout<<ans<<endl; } }