比赛 20141105 评测结果 WWWAAAAWWW
题目名称 韩信点兵 最终得分 40
用户昵称 mikumikumi 运行时间 0.002 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2014-11-05 10:21:55
显示代码纯文本
#include<fstream>
using namespace std;
ifstream input("HanXin.in");
ofstream output("HanXin.out");
long long ans,v=0,n,m,p[11]={0},mo[11]={0},sum=0,M=1;
long long ma=1;
int main()
{
	long long  k,i;
	input>>n>>m;
	for(i=1;i<=m;i++)
	{
		input>>p[i]>>mo[i];
	}
	for(i=1;i<=m;i++)
		M=M*p[i];
	for(i=1;i<=m;i++)
	{
		
		k=M/p[i];
		sum=sum+mo[i]*(k%p[i])*k;
	}
	while(sum>n)
		sum=sum-M;
	if(sum<0)
	{
		output<<"-1";
		input.close();
	    output.close();
		return 0;
	}
	for(i=1;i<=m;i++)
	{
		if(sum%p[i]!=mo[i])
		{
			output<<"-1";
		input.close();
	    output.close();
		return 0;
		}
	}
	ans=(n-sum)%M;
	output<<ans;
	input.close();
	output.close();
	return 0;
}