Uva 10104 - Euclid Problem
Problem Link:: Euclid Problem
/* * Accepted * */ /// Header file begin #include <iostream> #include <cstdio> #include <cstring> #include <map> #include <string> #include <vector> #include <cmath> #include <cctype> #include <sstream> #include <set> #include <list> #include <stack> #include <queue> #include <algorithm> /// End //.......... /// Macro #define sf scanf #define pf printf #define sfint(a,b) scanf("%d %d",&a,&b) #define sfl(a,b) scanf("%ld %ld",&a,&b) #define sfll(a,b) scanf("%lld %lld",&a,&b) #define sfd(a,b) scanf("%lf %lf",&a,&b) #define sff(a,b) scanf("%f %f",&a,&b) #define lp1(i,n) for(i=0;i<n;i++) #define lp2(i,n) for(i=1;i<=n;i++) #define mem(c,v) memset(c,v,sizeof(c)) #define cp(a) cout<<" "<<a<<" "<<endl #define nl puts("") #define sq(x) ((x)*(x)) #define all(x) x.begin(),x.end() #define sz size() #define gc getchar() #define pb push_back /// End......... /// Size #define mx7 20000100 #define mx6 1500000 #define mx5 100005 #define inf 1<<30 //infinity value #define eps 1e-9 #define mx (65540) #define mod 1000000007 #define pi acos(-1.0) using namespace std; //.................................................................................................................. typedef long long LL; typedef long L; typedef unsigned long long ull; typedef unsigned long ul; typedef unsigned int ui; typedef pair<LL, LL> pii; template<class T> T setbit(T n, T pos){n=n|(1<<pos); return n;} template<class T> T checkbit(T n, T pos){n=n&(1<<pos); return n;} template<class T> T gcd(T a, T b ) {return b==0?a:gcd(b,a%b);} template<class T> T large(T a, T b ) {return a>b?a:b;} template<class T> T small(T a, T b ) {return a<b?a:b;} pii EGCD(LL a, LL b) { if(b == 0) { return pii(1,0); } else { pii d=EGCD(b, a%b); return pii(d.second, d.first - d.second * (a/b) ); } } int main() { LL a,b; while(2==sf("%lld %lld",&a,&b)) { pair<LL, LL>pr=EGCD(a,b); pf("%lld %lld %lld\n",pr.first,pr.second,gcd<LL>(a,b)); } return 0; }
Comments
Post a Comment