結果
問題 | No.186 中華風 (Easy) |
ユーザー |
![]() |
提出日時 | 2015-09-08 21:19:45 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 19 ms / 2,000 ms |
コード長 | 570 bytes |
コンパイル時間 | 1,313 ms |
コンパイル使用メモリ | 159,480 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-19 18:27:14 |
合計ジャッジ時間 | 2,096 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 23 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll gcd(ll a,ll b){ if(a<b) swap(a,b); while(a%b!=0){ ll tmp=a%b; a=b; b=tmp; } return b; } ll calc(ll a,ll b){ return a*b/gcd(a,b); } int main(){ int x[3],y[3]; for(int i=0;i<3;i++) cin>>x[i]>>y[i]; ll pl[3]; pl[0]=y[0]; ll ans=(x[0]!=0?x[0]:x[0]+y[0]); for(int i=1;i<3;i++){ bool flag=true; for(int j=0;j<y[i];j++){ if(ans%y[i]==x[i]){ flag=false; break; } ans+=pl[i-1]; } if(flag){ cout<<-1<<endl; return 0; } pl[i]=calc(pl[i-1],y[i]); } cout<<ans<<endl; return 0; }