結果
| 問題 |
No.910 素数部分列
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-08-13 12:21:42 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 135 ms / 1,000 ms |
| コード長 | 734 bytes |
| コンパイル時間 | 162 ms |
| コンパイル使用メモリ | 82,768 KB |
| 実行使用メモリ | 118,192 KB |
| 最終ジャッジ日時 | 2024-09-24 16:26:00 |
| 合計ジャッジ時間 | 5,997 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 50 |
ソースコード
from collections import deque
n = int(input())
s = input()
li = []
ans = 0
for i in range(n):
if s[i] != "1" and s[i] != "9":
ans += 1
else:
li.append(s[i])
idx = set()
d1 = deque()
#d9 = deque()
for i in range(len(li)):
if li[i] == "1":
d1.append(i)
if li[i] == "9":
if len(d1) > 0:
tmp = d1.popleft()
idx.add(tmp)
idx.add(i)
ans += 1
li2 = []
for i in range(len(li)):
if i not in idx:
li2.append(li[i])
#print(li2,ans,len(li2))
#exit()
n9 = 0
n1 = 0
for i in range(len(li2)):
if li2[i] == "1":
n9 = i
n1 = len(li2)-i
break
tmp = min(n9//2,n1)
ans += tmp
ans += (n1-tmp)//2
print(ans)