結果
| 問題 |
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)