結果
| 問題 |
No.1176 少ない質問
|
| コンテスト | |
| ユーザー |
AngrySadEight
|
| 提出日時 | 2020-08-21 22:18:15 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 1,000 ms |
| コード長 | 1,023 bytes |
| コンパイル時間 | 1,500 ms |
| コンパイル使用メモリ | 169,620 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-15 05:49:38 |
| 合計ジャッジ時間 | 2,335 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 21 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0; i < (int)(n); i++)
#define repr(i,n) for(int i = (int)(n); i >= 0; i--)
#define all(v) v.begin(),v.end()
typedef long long ll;
int main(){
ll A;
cin >> A;
vector<ll> exp_3(0);
vector<ll> exp_2(0);
exp_3.push_back(1);
ll num = 1;
while(true){
if (num > 3000000000000000000){
break;
}
num *= 3;
exp_3.push_back(num);
}
exp_2.push_back(1);
num = 1;
while(true){
if (num > 2000000000000000000){
break;
}
num *= 2;
exp_2.push_back(num);
}
ll len_2 = exp_2.size();
ll len_3 = exp_3.size();
ll ans_2 = 10000;
ll ans_3 = 10000;
for (ll i = 0; i < len_2; i++){
if (A <= exp_2[i]) ans_2 = min(ans_2, i * 2);
}
for (ll i = 0; i < len_3; i++){
if (A <= exp_3[i]) ans_3 = min(ans_3, i * 3);
}
if (A == 5) cout << 5 << endl;
else cout << min(ans_2, ans_3) << endl;
}
AngrySadEight