mirror of
https://git.sb/baoshuo/OI-codes.git
synced 2024-11-30 17:36:27 +00:00
parent
d788a4cf5e
commit
6d72585647
40
S2OJ/480/480.cpp
Normal file
40
S2OJ/480/480.cpp
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
#include <bits/stdc++.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
long long n, m, t, ans, x;
|
||||||
|
|
||||||
|
long long gcd(long long a, long long b) {
|
||||||
|
if (!b) return a;
|
||||||
|
return gcd(b, a % b);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
cin >> n >> m >> t;
|
||||||
|
if (!m) {
|
||||||
|
cout << -1 << endl;
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
if (!n) {
|
||||||
|
cout << 0 << endl;
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
x = gcd(n, m);
|
||||||
|
n /= x;
|
||||||
|
m /= x;
|
||||||
|
while (n != 1 || m != 1) {
|
||||||
|
if (n < m) swap(n, m);
|
||||||
|
ans += n / m;
|
||||||
|
n %= m;
|
||||||
|
if (!n) {
|
||||||
|
n += m;
|
||||||
|
ans--;
|
||||||
|
}
|
||||||
|
if (n < 1 || m < 1) {
|
||||||
|
cout << -1 << endl;
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cout << ++ans * t << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user