2 条题解
-
0
易懂,但长
#include<bits/stdc++.h> using namespace std; #define ll long long ll a,m,l,r,ans=1ll; int main() { scanf("%lld%lld%lld%lld",&a,&m,&l,&r); if(a>r)//在最右边就减回来再算区间内个数 { a-=(a-r)/m*m; while(a>r)a-=m; if(a<l)ans=0ll;//注意可能无法种植即可 ans+=(a-l)/m; } else if(a<l)//在最左边就加回来 { a+=(l-a)/m*m; while(a<l)a+=m; if(a>r)ans=0ll;//同上 ans+=(r-a)/m; } else if(l<=a&&a<=r)//直接就在区间内 { ans+=(a-l)/m;//左边能种多少 ans+=(r-a)/m;//右边能种多少 } printf("%lld\n",ans); return 0; }
- 1
信息
- ID
- 8270
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 7
- 标签
- 递交数
- 66
- 已通过
- 13
- 上传者