結果
| 問題 |
No.145 yukiover
|
| コンテスト | |
| ユーザー |
yaoshimax
|
| 提出日時 | 2015-05-01 01:32:58 |
| 言語 | Python2 (2.7.18) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,625 bytes |
| コンパイル時間 | 43 ms |
| コンパイル使用メモリ | 7,040 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2024-07-05 17:17:30 |
| 合計ジャッジ時間 | 1,183 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 18 WA * 2 |
ソースコード
N=int(raw_input())
S=raw_input()
cnt=[0 for i in range(30)]
for s in S:
cnt[ord(s)-ord('a')]+=1
ans=0
m=N
for i in range(ord('z'),ord('a')-1,-1):
if i > ord('y'):
ans+=cnt[i-ord('a')]
elif i == ord('y'):
m=min(m,cnt[i-ord('a')])
elif i > ord('u'):
ans+=min(m,cnt[i-ord('a')])
m-=min(m,cnt[i-ord('a')])
elif i == ord('u'):
if cnt[i-ord('a')]>m:
ans+=min(m,cnt[i-ord('a')]-m)
m-=min(m,cnt[i-ord('a')]-m)
else:
ans+=(m-cnt[i-ord('a')]+1)/2
m-=((m-cnt[i-ord('a')]+1)/2)*2
if(m-cnt[i-ord('a')])%2>0:
m-=1
ans+=1
elif i > ord('k'):
ans+=min(m,cnt[i-ord('a')])
m-=min(m,cnt[i-ord('a')])
elif i == ord('k'):
if cnt[i-ord('a')]>m:
ans+=min(m,cnt[i-ord('a')]-m)
m-=min(m,cnt[i-ord('a')]-m)
else:
ans+=(m-cnt[i-ord('a')]+1)/2
m-=((m-cnt[i-ord('a')]+1)/2)*2
if(m-cnt[i-ord('a')])%2>0:
m-=1
ans+=1
elif i > ord('i'):
ans+=min(m,cnt[i-ord('a')])
m-=min(m,cnt[i-ord('a')])
elif i== ord('i'):
if cnt[i-ord('a')]>m:
ans+=min(m,cnt[i-ord('a')]-m)
m-=min(m,cnt[i-ord('a')]-m)
else:
ans+=(m-cnt[i-ord('a')]+1)/2
m-=((m-cnt[i-ord('a')]+1)/2)*2
if(m-cnt[i-ord('a')])%2>0:
m-=1
ans+=1
else:
ans+=min(m,cnt[i-ord('a')])
m-=min(m,cnt[i-ord('a')])
#print chr(i),cnt[i-ord('a')],"=>",ans,m
print ans+m/2
yaoshimax