CF1195B Sport Mafia

CF1195B Sport Mafia

简单数学题。

列个方程,设操作了 xx 次,(如果设吃了多少次好像不太行)

等差数列求和公式: (1+2+3+...+n)=12(n+1)(n)(1+2+3+...+n)=\frac{1}{2}(n+1)(n)

于是乎就有方程: 12(x+1)(x)(nx)=m\frac{1}{2}(x+1)(x)-(n-x)=m

简单化简一下, x+x22n+2x=2mx+x^2-2n+2x=2m

合并同类项, x(x+3)=2m+2nx(x+3)=2m+2n

所以我们只需要暴力枚举 xx 即可。

代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
	int i=0;
	while(1)
	{
		if((i+3)*i==2*m+2*n)
		{
			cout<<n-i<<endl;
			break;
		}
		i++;
	}
}
posted @ 2022-06-23 13:18  June_Failure  阅读(4)  评论(0)    收藏  举报  来源