Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Jogging"
https://onlinejudge.u-aizu.ac.jp/problems/0211
・みんなでジョギング
僕が作成、提出したコードは、以下のとおりです。
・Aizu Online Judge in C++ #Volume2 - 0211 : Jogging
/* Aizu Online Judge in C++ #Volume2 - 0211 : Jogging https://onlinejudge.u-aizu.ac.jp/problems/0211 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; ll f(ll a,ll b){ ll c; if(a<b){ c=a; a=b; b=c; } while(a%b!=0){ c=a; a=b; b=c%b; } return b; } int main(void){ ll i,n,d[10],v[10]; while(cin>>n,n){ for(i=0;i<n;i++){ cin>>d[i]>>v[i]; } ll a=d[0],b=v[0]; for(i=1;i<n;i++){ ll c=f(b*d[i],a*v[i]); ll D=a*v[i]/c; a=D*d[i]; b=v[i]; } for(i=0;i<n;i++){ cout<<(a*v[i])/(b*d[i])<<endl; } } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/