扩展中国剩余定理板子

#include<iostream>
#include<cstdio>
using namespace std;
const int N=100005;
int n;
long long m[N],r[N],M,R,x,y,d;
void exgcd(long long a,long long b,long long &d,long long &x,long long &y)
{
if(!b)
{
d=a,x=1,y=0;
return;
}
exgcd(b,a%b,d,y,x);
y-=a/b*x;
}
int main()
{
while(~scanf("%d",&n))
{
bool fl=0;
for(int i=1;i<=n;i++)
scanf("%lld%lld",&m[i],&r[i]);
R=r[1],M=m[1];
for(int i=2;i<=n;i++)
{
exgcd(M,m[i],d,x,y);
if((r[i]-R)%d)
{
fl=1;
break;
}
x=(r[i]-R)/d*x%(m[i]/d);
R=R+M*x;
M=M/d*m[i];
R=R%M;
}
if(fl)
puts("-1");
else
printf("%lld\n",(R+M)%M);
}
return 0;
}

最新文章

  1. PyQt4入门学习笔记(一)
  2. iOS 2D绘图 (Quartz2D)之路径(stroke,fill,clip,subpath,blend)
  3. PHP基础教程-54课-问题
  4. [转]设定version 更新js缓存
  5. 关于Linux下进程间使用共享内存和信号量通信的时的编译问题
  6. JS使用百度地图API
  7. &lt;string&gt;和&lt;string.h&gt;的区别
  8. Android 高级UI设计笔记09:Android如何实现无限滚动列表
  9. 异常处理 - PHP手册笔记
  10. Mini-project # 4 - &quot;Pong&quot;___An Introduction to Interactive Programming in Python&quot;RICE&quot;
  11. Python教程(2.4)——字符串
  12. 配置ssh无密钥登陆
  13. mysql数据类型(三)
  14. 2019swpuj2ee作业2--HTTP协议
  15. tp5多数据库配置
  16. Python中MongoDB使用
  17. 理解SVG的图形填充规则
  18. 【Linux笔记】阿里云服务器被暴力破解
  19. CUGBACM Codeforces Tranning 3 题解
  20. ios图标生成器网址 插件禁用后,可以选择这个

热门文章

  1. React 组件开发注意事项
  2. dvm进程,linux进程,应用程序进程是否同一概念
  3. 使用maven创建项目和cannot change version web module 3.0
  4. PHP生成excel(2)
  5. Spark学习笔记:(一)入门 glance
  6. 有遍历struct中字段信息的函数或方法
  7. STM32唯一身份识别ID(器件电子签名)的读取以及芯片Flash大小读取
  8. Apache Flink 1.5.1 Released
  9. Messaging Patterns for Event-Driven Microservices
  10. strncpy和strlen的可能的实现