はまやんはまやんはまやん

hamayanhamayan's blog

割った余りの個数 [yukicoder No.810]

https://yukicoder.me/problems/no/810

解説

https://yukicoder.me/submissions/338175

Mで割った余りを並べてみると、
0 1 2 3 ... M-1 0 1 2 3 ...
となる。
ここからどこでもいいので、連続してM個取り出すとそれはすべて異なっていることが分かる。
よって、連続するR-L+1個の区間はM個以下であれば、全て異なり、
M個より大きければ、あとは繰り返しなので、あまりとして考えられる整数はM個である。
よって、min(R-L+1, M)が答え。

int L, R, M;
//---------------------------------------------------------------------------------------------------
void _main() {
	cin >> L >> R >> M;

	int ans = min(R - L + 1, M);
	cout << ans << endl;
}