p2657.cpp

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 30 行

CPP
30
字号
#include <iostream>

using namespace std;

long long X , Y , m , n , L;

void extended ( long long a , long long b , long long &gcd , long long &x , long long &y )
{
     if ( b == 0 ) gcd = a , x = 1 , y = 0;
     else extended ( b , a % b , gcd , y , x ) , y -= x * ( a / b );
}

bool check ()
{
     long long x , y , gcd;
     m = (( m - n ) % L + L ) % L , n = (( Y - X ) % L  + L ) % L;
     extended ( L , m , gcd , x , y );
     if  ( n % gcd ) return false;
     n /= gcd , L /= gcd;
     cout << ( ( n * y ) % L + L ) % L << endl;
     return true;
}

main ()
{
     while ( cin >> X >> Y >> m >> n >> L ) {
           if ( !check () ) cout << "Pat\n";
     }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?