ABC334B 题解
忽然想到的奇妙做法。
该做法的核心在于平移区间。
我们首先令
不过此时
答案即为
代码如下:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll a,m,l,r;
cin>>a>>m>>l>>r;
l-=a,r-=a;
if(l<0){
ll d=(-l)/m+1;
l+=d*m,r+=d*m;
}
printf("%lld",r/m-(l-1)/m);
return 0;
}