第一个思路——枚举
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,l,r;
cin>>n>>l>>r;
int k=l,maxn=0;
while(k<=r)
{
maxn=max(maxn,k%n);
if(maxn==n-1)break;
k++;
}
cout<<maxn;
}
90分,#9测试点TLE
第二个思路——判断
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,l,r=n=l=0;
cin>>n>>l>>r;
if(r-l>=n)cout<<n-1;
else cout<<r%n;
return 0;
}
思路如下:剩余的糖果是k%n,所以不是n-1,就是r%n

- 当l和r在同一个周期内的时候,(红色线),最大值是r%n
- 当l和r不在同一个周期内的时候,(绿色线),最大值就是n-1
但是这个程序只有70分,#1#2#4点错了,请各位dalao指教