結果
| 問題 |
No.509 塗りつぶしツール
|
| コンテスト | |
| ユーザー |
FromBooska
|
| 提出日時 | 2023-03-02 12:16:13 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 39 ms / 2,000 ms |
| コード長 | 939 bytes |
| コンパイル時間 | 210 ms |
| コンパイル使用メモリ | 82,232 KB |
| 実行使用メモリ | 52,352 KB |
| 最終ジャッジ日時 | 2024-09-17 08:04:19 |
| 合計ジャッジ時間 | 2,081 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
# 待てよ、背景を最初に赤などにすると異なるか
# 例108. 今までの方法なら数3、穴3、BG1、数3で合計10
# BGからやると、BG赤、1を白に1、穴赤3、数白2、穴黒3、BG黒で合計11
# 穴があるとBGからやるのはペイしない
# しかし穴がない例111なら、BG赤、数白3、BG黒、の計5回で従来方法の7よりよい
# 穴が少なければこっちの方がいいはず、たとえば1111110
# ということは2方法で計算して最小値が答えだろう
# in ans2, 1 for [1, 2, 3, 5, 7], 3 for [0, 4, 6, 9], 5 for [8], +2 for BG
N = input()
ans1 = 0
ans2 = 0
for i in range(len(N)):
if int(N[i]) in [1, 2, 3, 5, 7]:
ans1 += 2
ans2 += 1
elif int(N[i]) in [0, 4, 6, 9]:
ans1 += 3
ans2 += 3
elif int(N[i]) == 8:
ans1 += 4
ans2 += 5
ans1 += 1
ans2 += 2
ans = min(ans1, ans2)
print(ans)
#print(ans1, ans2)
FromBooska