結果
| 問題 | 
                            No.145 yukiover
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2025-10-31 17:25:05 | 
| 言語 | D  (dmd 2.109.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 4 ms / 5,000 ms | 
| コード長 | 925 bytes | 
| コンパイル時間 | 5,458 ms | 
| コンパイル使用メモリ | 160,748 KB | 
| 実行使用メモリ | 7,716 KB | 
| 最終ジャッジ日時 | 2025-10-31 17:25:14 | 
| 合計ジャッジ時間 | 7,359 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 20 | 
ソースコード
module main;
// https://kmjp.hatenablog.jp/entry/2015/02/06/0900 より
// 貪欲法
import std;
void main()
{
	// 入力
	int N = readln.chomp.to!int;
	auto S = readln.chomp;
	// 答えの計算
	int a_h, i, j, k, l_t, u, v_x, y, z;
	int ans = 0;
	foreach (c; S) {
		if (c == 'z') z++;
		else if (c == 'y') y++;
		else if (c > 'u') v_x++;
		else if (c == 'u') u++;
		else if (c > 'k') l_t++;
		else if (c == 'k') k++;
		else if (c == 'j') j++;
		else if (c == 'i') i++;
		else a_h++;
	}
	while (y && u && k && i && a_h) ans++, y--, u--, k--, i--, a_h--;
	while (y && u && k && i >= 2) ans++, y--, u--, k--, i -= 2;
	while (y && u && k && j) ans++, y--, u--, k--, j--;
	while (y && u && k >= 2) ans++, y--, u--, k -= 2;
	while (y && u && l_t) ans++, y--, u--, l_t--;
	while (y && u >= 2) ans++, y--, u -= 2;
	while (y && v_x) ans++, y--, v_x--;
	while (y >= 2) ans++, y -= 2;
	ans += z;
	// 答えの出力
	writeln(ans);
}