Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
help!!!#include<iostream.h> #include<iomanip.h> //x,y用于gcd函数满足:aa*x+nn*y==gcd(aa,nn) //gcd返回的值为answer即gcd(cc,dd)==answer //e为aa*x==bb(mod nn)的解 long int x,y,e; long int gcd(long int aa,long int bb) { long int t; long int answer; if(bb==0) { answer=aa; x=1; y=0; } else { answer=gcd(bb,aa%bb); t=x; x=y; y=t-(aa/bb)*y; } return answer; } void tongyu(long int aa,long int bb,long int nn) { long int d,i,ee; d=gcd(aa,nn); if(bb%d>0) { e=-1; return; } else { e=(x*(bb/d))%nn; if(e<0) e=e+nn; } } int main() {long int x1,y1,x2,y2,m,n,l,b; cin>>x2>>y2>>m>>n>>l; cout << setprecision(0); cout << setiosflags(ios::fixed); x1=x2%l; y1=y2%l; if(m>=n) { if(y1>=x1) b=y1-x1; else b=y1-x1+l; tongyu(m-n,b,l); if(e==-1) { cout<<"Impossible"<<endl; } else { cout<<e<<endl; } } if(m<n) { if(x1>=y1) { b=x1-y1; } else b=x1-y1+l; tongyu(n-m,b,l); if(e==-1) { cout<<"Impossible"<<endl; } else { cout<<e<<endl; } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator