質問編集履歴
6
タイトルの修正
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
ABC146-C Python
|
1
|
+
ABC146-C-Buy an Integer PythonでACがとれない
|
body
CHANGED
File without changes
|
5
タグ追加
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
4
ソースコードに説明を追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,12 +26,15 @@
|
|
26
26
|
|
27
27
|
a, b, x = (int(i) for i in stdin.readline().rstrip().split())
|
28
28
|
|
29
|
+
# 所持金が一定以上の場合、最大値は常に10^9
|
29
30
|
if ((10**9)*a + 9*b) <= x:
|
30
31
|
print(10**9)
|
31
32
|
else:
|
32
33
|
ans = 0
|
34
|
+
# d(N)に1 → 9を順に代入
|
33
35
|
for i in range(1, 10):
|
34
36
|
temp = (x - (b*i))/a
|
37
|
+
# 所持金で買える最大値の桁数がd(N)と一致しているか調べる
|
35
38
|
if 10**(i-1) <= temp < (10**i):
|
36
39
|
ans = int(temp)
|
37
40
|
print(ans)
|
3
テストケースの判定追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,9 @@
|
|
2
2
|
|
3
3
|
Python3でこの問題を解いたのですがACがとれません。検索してみると二分探索法が最適解として紹介されていましたが自分のやっている方法で何が間違っているのか分からないので、どこを直せば良いか教えていただきたいです。
|
4
4
|
|
5
|
+
追記:
|
6
|
+
WAと判定されたのはborder01とmax01です。それ以外のテストケースではACでした。
|
7
|
+
|
5
8
|
###問題
|
6
9
|
[ABC146: C問題](https://atcoder.jp/contests/abc146/tasks/abc146_c)
|
7
10
|
1以上10^9以下の整数が売ってある。
|
2
基本方針の加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
###基本方針
|
17
17
|
a*N + b*d(N) <= x を満たす最大のNを答えればいい。
|
18
18
|
式変形すると N <= (x - b*d(N))/a
|
19
|
-
d(N)に1から9を入れていき桁数が合うものを答える。
|
19
|
+
d(N)に1から9を入れていき桁数が合う最大のものを答える。
|
20
20
|
|
21
21
|
```Python 3
|
22
22
|
from sys import stdin
|
1
抜粋した問題文を訂正
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,8 @@
|
|
6
6
|
[ABC146: C問題](https://atcoder.jp/contests/abc146/tasks/abc146_c)
|
7
7
|
1以上10^9以下の整数が売ってある。
|
8
8
|
整数Nを買うには a*N + b*d(N) 円が必要。(d(N)はNの桁数)
|
9
|
-
所持金が x円 のとき買うことのできる整数Nの最大値は?
|
9
|
+
所持金が x円 のとき、買うことのできる整数Nの最大値は?
|
10
|
+
1つも買えない場合は 0 を出力
|
10
11
|
1 <= a <= 10^9
|
11
12
|
1 <= b <= 10^9
|
12
13
|
1 <= x <= 10^18
|