比赛 |
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;
}