提出 #20343302
ソースコード 拡げる
#include <bits/stdc++.h>
#define rep(i,cc,n) for(int i=cc;i<=n;++i)
using namespace std;
using ll = long long;
bool f(string s, ll n, ll base)
{
ll answer = 0;
int i = 0;
for (auto it = s.rbegin(); it != s.rend(); ++it)
{
ll cur = pow(base, i++) * (*it - '0');
if (answer > n - cur) return false;
answer += cur;
}
return answer <= n;
}
ll binary_search(string x, ll n, ll imin, ll imax)
{
if (imax < imin)
return imin;
ll imid = imin + (imax - imin) / 2;
if (f(x, n, imid))
return binary_search(x, n, imid + 1, imax);
else
return binary_search(x, n, imin, imid - 1);
}
ll Solve(string x, ll n)
{
if (x.size() == 1)
{
int m = stoi(x);
return m <= n;
}
int d = *max_element(x.begin(), x.end()) - '0';
ll imin = 1, imax = 1e18;
return max(0LL, binary_search(x, n, imin, imax) - d - 1);
}
int main() {
string x; ll m;
cin >> x >> m;
cout << Solve(x, m) << endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - Base n |
| ユーザ | sato11 |
| 言語 | C++ (GCC 9.2.1) |
| 得点 | 400 |
| コード長 | 993 Byte |
| 結果 | AC |
| 実行時間 | 12 ms |
| メモリ | 4152 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, one_digit_01.txt, one_digit_02.txt, one_digit_03.txt, one_digit_04.txt, one_digit_05.txt, one_digit_06.txt, one_digit_07.txt, one_digit_08.txt, one_digit_09.txt, one_digit_10.txt, one_digit_11.txt, one_digit_12.txt, one_digit_13.txt, one_digit_14.txt, one_digit_15.txt, one_digit_16.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| hand_01.txt | AC | 9 ms | 3968 KiB |
| hand_02.txt | AC | 2 ms | 3512 KiB |
| hand_03.txt | AC | 5 ms | 4020 KiB |
| hand_04.txt | AC | 3 ms | 3560 KiB |
| one_digit_01.txt | AC | 2 ms | 3436 KiB |
| one_digit_02.txt | AC | 2 ms | 3560 KiB |
| one_digit_03.txt | AC | 3 ms | 3492 KiB |
| one_digit_04.txt | AC | 2 ms | 3544 KiB |
| one_digit_05.txt | AC | 2 ms | 3560 KiB |
| one_digit_06.txt | AC | 2 ms | 3556 KiB |
| one_digit_07.txt | AC | 3 ms | 3540 KiB |
| one_digit_08.txt | AC | 3 ms | 3556 KiB |
| one_digit_09.txt | AC | 2 ms | 3564 KiB |
| one_digit_10.txt | AC | 3 ms | 3676 KiB |
| one_digit_11.txt | AC | 2 ms | 3488 KiB |
| one_digit_12.txt | AC | 2 ms | 3540 KiB |
| one_digit_13.txt | AC | 3 ms | 3372 KiB |
| one_digit_14.txt | AC | 6 ms | 3560 KiB |
| one_digit_15.txt | AC | 4 ms | 3564 KiB |
| one_digit_16.txt | AC | 5 ms | 3544 KiB |
| random_01.txt | AC | 3 ms | 3508 KiB |
| random_02.txt | AC | 2 ms | 3572 KiB |
| random_03.txt | AC | 2 ms | 3504 KiB |
| random_04.txt | AC | 2 ms | 4068 KiB |
| random_05.txt | AC | 2 ms | 3760 KiB |
| random_06.txt | AC | 3 ms | 4008 KiB |
| random_07.txt | AC | 3 ms | 4072 KiB |
| random_08.txt | AC | 3 ms | 3932 KiB |
| random_09.txt | AC | 3 ms | 3832 KiB |
| random_10.txt | AC | 4 ms | 4072 KiB |
| random_11.txt | AC | 3 ms | 4020 KiB |
| random_12.txt | AC | 2 ms | 3832 KiB |
| random_13.txt | AC | 2 ms | 3696 KiB |
| random_14.txt | AC | 2 ms | 3508 KiB |
| random_15.txt | AC | 2 ms | 3692 KiB |
| random_16.txt | AC | 2 ms | 4056 KiB |
| random_17.txt | AC | 2 ms | 4072 KiB |
| random_18.txt | AC | 2 ms | 4068 KiB |
| random_19.txt | AC | 3 ms | 4084 KiB |
| random_20.txt | AC | 5 ms | 4064 KiB |
| random_21.txt | AC | 2 ms | 4072 KiB |
| random_22.txt | AC | 2 ms | 4024 KiB |
| random_23.txt | AC | 3 ms | 4148 KiB |
| random_24.txt | AC | 2 ms | 4152 KiB |
| sample_01.txt | AC | 2 ms | 3504 KiB |
| sample_02.txt | AC | 2 ms | 3556 KiB |
| sample_03.txt | AC | 12 ms | 4036 KiB |