結果
問題 | No.145 yukiover |
ユーザー | mkawa2 |
提出日時 | 2020-01-22 22:57:46 |
言語 | Python3 (3.12.2 + numpy 1.26.4 + scipy 1.12.0) |
結果 |
AC
|
実行時間 | 47 ms / 5,000 ms |
コード長 | 1,907 bytes |
コンパイル時間 | 96 ms |
コンパイル使用メモリ | 12,928 KB |
実行使用メモリ | 11,264 KB |
最終ジャッジ日時 | 2024-07-16 04:06:19 |
合計ジャッジ時間 | 2,060 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 28 ms
10,880 KB |
testcase_01 | AC | 28 ms
11,008 KB |
testcase_02 | AC | 28 ms
10,880 KB |
testcase_03 | AC | 31 ms
10,880 KB |
testcase_04 | AC | 31 ms
10,880 KB |
testcase_05 | AC | 28 ms
10,880 KB |
testcase_06 | AC | 29 ms
10,880 KB |
testcase_07 | AC | 28 ms
10,880 KB |
testcase_08 | AC | 28 ms
10,880 KB |
testcase_09 | AC | 29 ms
11,008 KB |
testcase_10 | AC | 27 ms
10,880 KB |
testcase_11 | AC | 47 ms
11,264 KB |
testcase_12 | AC | 46 ms
11,136 KB |
testcase_13 | AC | 43 ms
11,136 KB |
testcase_14 | AC | 42 ms
11,264 KB |
testcase_15 | AC | 41 ms
11,136 KB |
testcase_16 | AC | 37 ms
11,136 KB |
testcase_17 | AC | 45 ms
11,136 KB |
testcase_18 | AC | 43 ms
11,136 KB |
testcase_19 | AC | 43 ms
11,136 KB |
testcase_20 | AC | 43 ms
11,136 KB |
testcase_21 | AC | 43 ms
11,136 KB |
testcase_22 | AC | 44 ms
11,136 KB |
testcase_23 | AC | 45 ms
11,264 KB |
ソースコード
import sys sys.setrecursionlimit(10 ** 6) def II(): return int(sys.stdin.readline()) def SI(): return sys.stdin.readline()[:-1] def main(): n = II() s = SI() ans = 0 # アルファベットを次のように分類して、個数を数える # yより後(1文字で辞書順が後なので、すぐにansに加える) # 0:y # 1:uとyの間 # 2:u # 3:kとuの間 # 4:k # 5:iとkの間 # 6:i # 7:iより前 cnt = [0] * 9 oy = ord("y") ou = ord("u") ok = ord("k") oi = ord("i") for c in s: a = ord(c) if a > oy: ans += 1 continue elif a == oy: i = 0 elif a > ou: i = 1 elif a == ou: i = 2 elif a > ok: i = 3 elif a == ok: i = 4 elif a > oi: i = 5 elif a == oi: i = 6 else: i = 7 cnt[i] += 1 # それぞれのパターンごとにyukiより辞書順が後ろのものを作っていく # 2文字(y? ?はuより後) w = min(cnt[0], cnt[1]) ans += w for i in [0, 1]: cnt[i] -= w # 3文字(yu? ?はkより後) w = min(cnt[0], cnt[2], cnt[3]) ans += w for i in [0, 2, 3]: cnt[i] -= w # 4文字(yuk? ?はiより後) w = min(cnt[0], cnt[2], cnt[4], cnt[5]) ans += w for i in [0, 2, 4, 5]: cnt[i] -= w # 5文字(yuki? ?はiより前) w = min(cnt[0], cnt[2], cnt[4], cnt[6], cnt[7]) ans += w for i in [0, 2, 4, 6, 7]: cnt[i] -= w # yukii w = min(cnt[0], cnt[2], cnt[4], cnt[6] // 2) ans += w for i in [0, 2, 4]: cnt[i] -= w # yukk w = min(cnt[0], cnt[2], cnt[4] // 2) ans += w for i in [0, 2]: cnt[i] -= w # yuu w = min(cnt[0], cnt[2] // 2) ans += w cnt[0] -= w # yy ans += cnt[0] // 2 print(ans) main()