結果
| 問題 | 
                            No.1862 Copy and Paste
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2022-02-27 13:05:02 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 689 bytes | 
| コンパイル時間 | 1,964 ms | 
| コンパイル使用メモリ | 195,512 KB | 
| 最終ジャッジ日時 | 2025-01-28 03:43:26 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 27 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  ll A, B;
  cin >> A >> B;
  ll N;
  cin >> N;
  if (N == 1) {
  	cout << "0\n";
  	return 0;
  }
  ll ans = 1LL << 61;
  for (int i = 1; i <= N; ++i) {
    ll a = floor(pow(N, 1.0 / i)), b = ceil(pow(N, 1.0 / i));
    vector<ll> powa(i + 1), powb(i + 1);
    powa[0] = powb[0] = 1;
    for (int j = 0; j < i; ++j) {
      powa[j + 1] = powa[j] * a;
      powb[j + 1] = powb[j] * b;
    }
    for (int j = 0; j <= i; ++j) {
      if (powa[j] * powb[i - j] >= N) {
        ans = min(ans, (A + B * (a - 1)) * j + (A + B * (b - 1)) * (i - j));
      }
    }
    if (b == 2) break;
  }
  cout << ans << '\n';
}