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 |
1000组测试数据都过了还是WA,求解释#include<stdio.h> #include<fstream> #include<iostream> #define swap(x,y) {w=x;x=y;y=w;} using namespace std; //ifstream fin("1061.in.txt"); int flag=1; int doit(int a,int b,int c) { int d=a,result; if(flag&&a){if(c%a)return (b*doit(b%a,d,(d-c)%d)+c)/a; else return c/a; } else{flag=0; return 0;} return 0; } int gcd(int a,int b) { if(b&&a%b)return gcd(b,a%b); return b; } int main(){ long long int w,top=0,ans,x,y,m,n,l,a,b,c,d,gml,gnl,gmnl; while(cin>>x>>y>>m>>n>>l) { if(m<n){swap(m,n);swap(x,y);} gml=l/gcd(m,l);gnl=l/gcd(n,l); gmnl=gml*gnl/gcd(gml,gnl); a=m-n;b=l;c=y-x; flag=1;ans=(doit(a,b,c)+l)%l%gmnl; if(flag)cout<<(ans-1)%l+1<<endl; else printf("Impossible\n"); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator