1 条题解
-
0
C++ :
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <sstream> #include <cstring> #include <cstdio> #include <cstdlib> #include <cmath> #include <queue> #include <stack> #include <map> #include <set> #include <numeric> #include <cassert> #include <complex> #include <ctime> #define clr(x,a) memset(x,a,sizeof(x)) #define sz(x) (int)x.size() #define rep(i,n) for(int i=0;i<n;i++) #define repeat(i, a, b) for(int i=(a);i<=(b);i++) #define all(v) (v).begin(), (v).end() #define Unique(store) store.resize(unique(store.begin(),store.end())-store.begin()) #define X first #define Y second using namespace std; int solve(int a,int b,int c,int d) { set< pair<int,int> >se; se.insert(make_pair(a,b)); while (a!=b) { if (b>a) b-=a; else a-=b; se.insert(make_pair(a,b)); } se.insert(make_pair(a,b)); while (c!=d) { pair<int,int>cur=make_pair(c,d); if (se.count(cur)) return c+d; if (d>c) d-=c; else c-=d; } pair<int,int>cur=make_pair(c,d); if (se.count(cur)) return c+d; return -1; } int main () { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int a,b,c,d; while (scanf("%d %d %d %d",&a,&b,&c,&d)!=EOF) { //assert(a<=1e5&&b<=1e5&&c<=1e5&&d<=1e5); //cout<<"go "<<a<<" "<<b<<" "<<c<<" "<<d<<endl; printf("%d\n",solve(a,b,c,d)); } return 0; }
- 1
信息
- ID
- 227
- 时间
- 2000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者