0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-12-05 02:06:27 +00:00
OI-codes/S2OJ/480/480.cpp

41 lines
691 B
C++
Raw Normal View History

#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;
}