POJ 2115 C Looooops 擴充套件gcd
阿新 • • 發佈:2019-02-12
很裸的擴充套件gcd 3月份做過一次 不過那時候稀裡糊塗不求甚解 最近又好好看了下擴充套件gcd 這就一sb題
ACcode:
#include <iostream> #include <cstdio> #define ll long long using namespace std; ll ex_gcd(ll a,ll b,ll &x,ll &y){ if(a==0&&b==0)return -1; if(b==0){x=1,y=0;return a;} ll d=ex_gcd(b,a%b,y,x); y-=a/b*x; return d; } int main(){ ll a,b,c,k,A,B,C,D,X,Y; while(scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&k)&&(a+b+c+k)){ A=c; B=1ll<<k; C=b-a; D=ex_gcd(A,B,X,Y); if(C%D!=0)puts("FOREVER"); else { X=X*(C/D); X=(X%(B/D)+B/D)%(B/D); cout<<X<<'\12'; } } return 0; }