题面
很容易发现,如果没有
L
L
L和
R
R
R的限制,答案应该是
N
−
1
N-1
N−1
所以当
[
L
,
R
]
[L,R]
[L,R]包含了(
k
N
+
N
−
1
kN+N-1
kN+N−1)
k
∈
N
k\in N
k∈N时输出
N
−
1
N-1
N−1即可
此时
⌊
L
/
N
⌋
≠
⌊
R
/
N
⌋
\lfloor{L/N}\rfloor\not=\lfloor{R/N}\rfloor
⌊L/N⌋=⌊R/N⌋
反之则
⌊
L
/
N
⌋
=
⌊
R
/
N
⌋
\lfloor{L/N}\rfloor=\lfloor{R/N}\rfloor
⌊L/N⌋=⌊R/N⌋,又因为
R
>
L
R>L
R>L
所以
R
%
N
>
L
%
N
R\%N>L\%N
R%N>L%N,输出
R
%
N
R\%N
R%N即可
综上:
{
N
−
1
(
⌊
L
/
N
⌋
≠
⌊
R
/
N
⌋
)
R
%
N
(
⌊
L
/
N
⌋
=
⌊
R
/
N
⌋
)
\left\{ \begin{aligned} &N-1&(\lfloor{L/N}\rfloor\not=\lfloor{R/N}\rfloor)\\ &R\%N&(\lfloor{L/N}\rfloor=\lfloor{R/N}\rfloor)\\ \end{aligned} \right.
{N−1R%N(⌊L/N⌋=⌊R/N⌋)(⌊L/N⌋=⌊R/N⌋)
code:
#include<bits/stdc++.h>
using namespace std;
int N,L,R;
int main(){
freopen("candy.in","r",stdin);
freopen("candy.out","w",stdout);
scanf("%d%d%d",&N,&L,&R);
if(R/N==L/N)printf("%d\n",R%N);
else printf("%d\n",N-1);
return 0;
}