#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; const ll mod = 1000000007; #define rep(i,n) for(int i=0;i=0;i--) #define all(x) (x).begin(),(x).end() bool cond(ull x, ull A, ull B, ull C) { return x - (x / A) + B * (x / A) >= C; } int main() { ull A, B, C = 0; cin >> A >> B >> C; //10^18程度で64bitマシンで扱えるギリギリの桁数となるため、上限を大きくとりすぎないこと ull ub = C; ull lb = 0; while (ub - lb > 1) { ull mid = (ub + lb) / 2; if(cond(mid, A, B, C)) { ub = mid; } else { lb = mid; } } cout << ub << endl; return 0; }