| ||||||||||
| 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 | |||||||||
Re:请看一下我的程序错在哪里。谢谢In Reply To:请看一下我的程序错在哪里。谢谢 Posted by:DKey at 2007-05-29 12:52:11 > #include "stdio.h"
> #include "math.h"
> #include "iostream.h"
>
> int main(int argc, char* argv[])
> {
> long x,y,m,n,L;
> cin>>x>>y>>m>>n>>L;
> if(x==y||x<0||y<0||x>= 2000000000||y>= 2000000000||m>= 2000000000||n>= 2000000000||L>= 2100000000||m<=0||n<=0||L<=0)
> {return 0;}
> else
> {
> long a,b,c;
> a=L;b=n-m;c=x-y;
> if(b==0){cout<<"Impossible"<<endl;}
> else{
> long A[10000]={0};
> long x=a,y=abs(b),d,temp;
> long u0,u1,u,v0,v1,v;
> int i=0,j=2;
> while(y!=0)
> {
> temp=y;
> A[i]=x/y;
> y=x%y;
> x=temp;
> i++;
> }
> d=temp;
> u0=1;u1=A[0];v0=0;v1=1;u=u0+A[1]*u1;v=v0+v1*A[1];
> while(j<i-1)
> {
>
> u0=u1;
> u1=u;
> u=u0+A[j]*u1;
> v0=v1;
> v1=v;
> v=v0+v1*A[j];
> j++;
> }
> if(c%d!=0) cout<<"Impossible"<<endl;
> else
> {
> int e=(a*v>abs(b)*u)?1:(-1);
> int f=(b>0)?1:(-1);
> long x0=e*c*v/d,y0=-e*f*c*u/d,y,k=abs(y0)*d/a;
> y=(y0>0)?(y0%(a/d)):((k+1)*a/d+y0);
> cout<<y<<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