队内赛 T1高尚的战斗之神想要取模
题目
输入输出样例
输入 #1
6 3 4
输出 #1
4
解题思路
今天题目名称好中二
考虑 x % 完 r 之后的情况,设 k = x % r
- k < l,因为 a < b ,a % b 一定等于 a,所以 r - 1 到 l 的这一段贡献的答案都是 k
- k ≥ l,k 在 l 到 r 之间,r - 1 到 k + 1 这一段的答案贡献为k;当循环到达k,k % k = 0,也就是 k 到 l 这一段对答案没有贡献(贡献为0)
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll x, l, r, ans;
int main() {
scanf("%lld %lld %lld", &x, &l, &r);
x %= r;
if(x < l)
ans = x * (r - l + 1);
else
ans = x * (r - x);
printf("%lld", ans);
}