[CSP-J 2021] 分糖果 题解

Zirnc

2021-10-24 10:47:14

Personal

题意:在 $[L, R]$ 之中寻找一个数 $x$,使得 $x \mod n$ 最大。 可以分成两种情况: 1. $\lfloor L \div n \rfloor < \lfloor R \div n \rfloor$ 这样,$[L, R]$ 肯定存在一个数 $x$,使得 $x \mod n = n-1$ 成立,答案就是 $n-1$。 2. $\lfloor L \div n \rfloor = \lfloor R \div n \rfloor$ 直接取 $R$,余数才能最大。答案为 $R - \lfloor L \div n \rfloor * n $。 ```cpp #include <bits/stdc++.h> using namespace std; long long n, L, R; int main() { cin >> n >> L >> R; long long LCN = L/n, RCN = R/n; if (RCN > LCN) { cout << n-1 << endl; return 0; } cout << R-LCN*n << endl; return 0; } ```