1 条题解

  • 0
    @ 2023-9-30 13:07:12

    我又来啦,给个赞吧❤️

    using namespace std;
    int gcd(long long a,long long b,long long &x,long long&y)
    {
        if(b==0)
        {
            x=1;
            y=0;
            return a;
        }
        long long  ret=gcd(b,a%b,x,y);
        long long temp=x;
            x=y;
            y=temp-a/b*y;
            return ret;
     
    }
    int main()
    {
        long long  x,y,m,n,l,X,Y;
        scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l);
        long long d=x-y;
        long long a=n-m;
        if(a<0)//根据上边的推导式,如果a编号,等号右侧的x-y相应改变
        {
            d=-d;
            a=-a;
        }
         long long z=gcd(a,l,X,Y);
        if(d%z!=0)
        {
            printf("Impossible\n");
        }
        else
        {
            printf("%lld",(d/z*X%(l/z)+(l/z))%(l/z) );
        }
        return 0;
    }
    
  • 1

信息

ID
133
时间
1000ms
内存
128MiB
难度
7
标签
递交数
28
已通过
9
上传者