結果
| 問題 |
No.141 魔法少女コバ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-09-19 08:45:30 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 4,097 ms / 5,000 ms |
| コード長 | 1,046 bytes |
| コンパイル時間 | 620 ms |
| コンパイル使用メモリ | 63,680 KB |
| 実行使用メモリ | 10,580 KB |
| 最終ジャッジ日時 | 2024-11-17 09:16:41 |
| 合計ジャッジ時間 | 128,810 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 88 TLE * 5 |
ソースコード
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int calc(int a,int b){
int x=1;
int c=min(a,b);
for(int i=2; i<=c; ++i){
if(a==1 || b==1) break;
while(1){
if(a%i==0 && b%i==0){
a/=i;
b/=i;
x*=i;
} else {
break;
}
}
}
return x;
}
int main(){
int M,N;
cin>>M>>N;
int a=calc(M,N);
M/=a;
N/=a;
int x=0;
vector<pair<int,int>> v;
int f=0;
while(1){
for(int i=0; i<v.size(); ++i){
if(v[i].first==M && v[i].second==N){
x=-1;
f=1;
}
}
if(f==0){
v.push_back(make_pair(M,N));
if(M==1 && N!=1){
x+=N;
break;
} else if(M>N){
if(M%N==0){
int b=M-N;
int c=b/N;
M-=c;
x+=c;
} else {
M-=N;
x+=1;
}
} else if(M<N){
int t=M;
M=N;
N=t;
x+=1;
} else {
break;
}
} else {
break;
}
}
cout<<x<<endl;
return 0;
}