結果
| 問題 |
No.145 yukiover
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-10-10 09:04:45 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 178 ms / 5,000 ms |
| コード長 | 1,337 bytes |
| コンパイル時間 | 79 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 11,136 KB |
| 最終ジャッジ日時 | 2024-07-20 04:57:26 |
| 合計ジャッジ時間 | 3,300 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 20 |
ソースコード
#coding=UTF-8
#問題文を読み違えていたのでやりなおし
N=int(input())
S=input()
#'y'より強いやつを作る
#'yu'よりも強いやつを残りから作る
#てんてんてん っこれはダイナミックゥ プログラミンッ(腰ポキ)
#しかも'y'>'u'>'k'>'i'なんだな
#[z],[y],[x-v],[u],[t-l],[k],[j-j],[i],[h-a]
#に分けて貪欲に
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
#print(bunpu)
ans=0
myon=N#今のところ同点なやつら
#0文字目までのは沢山個 とりあえず解は高々文字長個なので
#逆向きにやってみるか
for idx in range(4,-1,-1):
tmp=min([bunpu[7-idy*2] for idy in range(0,idx,1)]+[bunpu[8-idx*2]])
ans=ans+tmp
for idy in range(0,idx,1):
bunpu[7-idy*2]=bunpu[7-idy*2]-tmp
bunpu[8-idx*2]=bunpu[8-idx*2]-tmp
#あとyukiiみたいなの
if idx !=0:
tmp=min([bunpu[7-idy*2] for idy in range(0,idx-1,1)]+[bunpu[7-(idx-1)*2]//2])
ans=ans+tmp
for idy in range(0,idx,1):
bunpu[7-idy*2]=bunpu[7-idy*2]-tmp
bunpu[7-(idx-1)*2]=bunpu[7-(idx-1)*2]-tmp
print(ans)