結果
問題 | No.910 素数部分列 |
ユーザー |
![]() |
提出日時 | 2019-10-18 22:42:02 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 246 ms / 1,000 ms |
コード長 | 1,223 bytes |
コンパイル時間 | 171 ms |
コンパイル使用メモリ | 12,672 KB |
実行使用メモリ | 16,108 KB |
最終ジャッジ日時 | 2024-06-25 21:48:54 |
合計ジャッジ時間 | 8,390 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 50 |
ソースコード
N=int(input())S=input()ANS=0REST=[]for x in S:if x in {"3","5","7"}:ANS+=1else:REST.append(x)ONE=0NINE=0LEN=len(REST)USE=[0]*len(REST)while True:while ONE<LEN and REST[ONE]!="1":ONE+=1NINE=max(ONE,NINE)while NINE<LEN and REST[NINE]!="9":NINE+=1if ONE==LEN or NINE==LEN:breakelse:ANS+=1USE[ONE]=1USE[NINE]=1ONE+=1NINE+=1REST2=[]for i in range(len(REST)):if USE[i]==0:REST2.append(REST[i])REST=REST2ONE=0NINE1=0NINE2=0LEN=len(REST)USE=[0]*len(REST)for i in range(len(REST)):while NINE1<LEN and REST[NINE1]!="9":NINE1+=1NINE2=NINE1+1while NINE2<LEN and REST[NINE2]!="9":NINE2+=1ONE=max(NINE2,ONE)while ONE<LEN and REST[ONE]!="1":ONE+=1if NINE1>=LEN or NINE2>=LEN or ONE>=LEN:breakelse:ANS+=1USE[ONE]=1USE[NINE1]=1USE[NINE2]=1ONE+=1NINE1=NINE2+1NINE2+=1REST2=[]for i in range(len(REST)):if USE[i]==0:REST2.append(REST[i])REST=REST2#print(ANS,REST)ANS+=REST.count("1")//2print(ANS)