思路
简要题意
给出 ,,,你需要在区间 中取一个数 ,使 最大。
显然是道大水题。
首先,任何数 最大只可能为 。如果在 中能取到 ,我们就取;否则,我们取 。
有 就取是没什么问题,但是为什么没有 时取 呢?
因为,没有 可取时,可以发现,。
也就是说, 的结果是单调递增的。
这时,最大值肯定为 。
代码
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int n, l, r, x, ans;
int main(){
scanf("%d%d%d", &n, &l, &r);
x = r / n;
if (n * x - 1 >= l) ans = n - 1;
else ans = r % n;
printf("%d", ans);
}