[CSP-J 2021] 分糖果


洛谷題面

上午參加了 \(\rm CSP-J\) 中午來補題解。

感覺今年的 1= 分數線會相對而言低一點。

題目大意

給定 \(n,l,r\),求 \(\max\limits_{i=l\operatorname{mod}~n}^{r\operatorname{mod}~n}~\) 的最大值。

觀察到 \(r-l\le10^9\),那么答案可能和這個有關(不然給你這個干啥)。

否則,如果 \(r-l\ge n\),那么說明區間 \([l,r]\) 之間一定有 \(n\) 的某個倍數 \(-1\),要想 \(\operatorname{mod}~n\) 最大,答案就是 \(n-1\)

否則,即 \(r-l\lt n\),因為 \(n\le l\le r\),所以此時最大值為 \(r~\operatorname{mod}~n\)

最后還需要特判一個點,如 30 118 123 之類的數據,我的考場代碼會 WA 掉。

\(\dfrac{r}{n}>\dfrac{l}{n}\) 時,輸出 \(n-1\)

代碼

int main(void)
{
	//freopen("candy.in","r",stdin);
	
	//freopen("candy.out","w",stdout);
	
	int n,l,r;
	
	n=read(),l=read(),r=read();
	
	if(r-l>=n)
	{
		printf("%d\n",n-1);
	}
	
	else if(r/n>l/n)
	{
		printf("%d\n",n-1);
	}
	
	else
	{
		printf("%d\n",r%n);
	}
	
	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM