結果
問題 |
No.145 yukiover
|
ユーザー |
|
提出日時 | 2015-10-10 02:54:13 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,761 bytes |
コンパイル時間 | 212 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 11,008 KB |
最終ジャッジ日時 | 2024-07-20 04:56:12 |
合計ジャッジ時間 | 3,666 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 WA * 13 |
ソースコード
#coding=UTF-8 #勝ち方は #z #y[y-v] #yu[u-l] #yuk[k-j] #yuki[i-a] #0 yuki #1 yukii yuk #2 yukii yukk yui #4 yukii yukk yukii yu #5 yukii yukk yukii yuu yki #7 yukii yukii yukii yukk yukk yuu yi #zを量産する #y*の解を考える #y[x-v]を作る #yを使い切ったらおしまい #yu*の解を考える def kan(ichi,haba):#少なくともichi(0-org)文字目まで'yuki'と一致しているyukioverの個数を調べる関数 #habaは'yuki'[0:ichi]の個数 if haba<=0: return 0#新規性ゼロ else: #丁度ichi+1文字目で決着するの #'yuki'[0:ichi+1]+('yuki'[ichi+1]より強いの) の場合 tmp=bunpu[8-(ichi+1)*2] if haba<=tmp: return haba else: haba=haba-tmp #それとichi+1文字目までは一致してるの #'yuki'[0:ichi+1]+'yuki'[ichi]で勝つやつ if ichi==2: #上の以外にyuk/i[a-i] if bunpu[0]>=bunpu[1]:#[a-h]>i return bunpu[1] else:#[a-h]<i sa=bunpu[1]-bunpu[0] return bunpu[0]+sa//2 elif ichi<3: myon=kan(ichi+1,min(haba,bunpu[7-ichi*2]))#ichi文字目を置く amari=bunpu[7-ichi*2]-myon#余りでyuuとか作る感じ(ichi+1文字目決着) return tmp+myon+amari//2 N=int(input()) S=input() kubun=['abcdefgh', 'i', 'j', 'k', 'lmnopqrst', 'u', 'vwx', 'y', 'z'] bunpu=[0]*len(kubun) for moji in S: for idx in range(0,len(kubun),1): if moji in kubun[idx]: bunpu[idx]=bunpu[idx]+1 ans=bunpu[8]+kan(0,bunpu[7]) print(ans)