結果
| 問題 |
No.145 yukiover
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-03-10 01:02:57 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 5,000 ms |
| コード長 | 1,439 bytes |
| コンパイル時間 | 1,828 ms |
| コンパイル使用メモリ | 170,000 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-24 00:26:05 |
| 合計ジャッジ時間 | 2,800 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 20 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9;
int cnt[26];
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
int n;
string s;
cin >> n >> s;
for (int i = 0; i < n; i++) cnt[s[i] - 'a']++;
int ans = 0;
int tmp[4];
string s1 = "yuki";
for (int i = 0; i < 4; i++) tmp[i] = cnt[s1[i] - 'a'];
int tmp2 = *min_element(tmp, tmp + 4);
int tmp3 = 0;
for (int i = 0; i < 'i' - 'a'; i++) tmp3 += cnt[i];
tmp3 = min(tmp3, tmp2);
ans += tmp3;
for (int i = 0; i < 4; i++) tmp[i] -= tmp3;
tmp2 = *min_element(tmp, tmp + 3);
tmp3 = min(tmp[3] / 2, tmp2);
tmp[3] -= tmp3 * 2;
for (int i = 0; i < 3; i++) tmp[i] -= tmp3;
ans += tmp3;
tmp2 = *min_element(tmp, tmp + 3);
tmp3 = min(tmp2, cnt['j' - 'a']);
ans += tmp3;
for (int i = 0; i < 3; i++) tmp[i] -= tmp3;
tmp2 = min(tmp[0], tmp[1]);
tmp3 = min(tmp2, tmp[2] / 2);
tmp[2] -= tmp3 * 2;
for (int i = 0; i < 2; i++) tmp[i] -= tmp3;
ans += tmp3;
tmp2 = min(tmp[0], tmp[1]);
tmp3 = 0;
for (int i = 'l' - 'a'; i < 'u' - 'a'; i++) tmp3 += cnt[i];
tmp3 = min(tmp3, tmp2);
ans += tmp3;
for (int i = 0; i < 2; i++) tmp[i] -= tmp3;
tmp2 = tmp[0];
tmp3 = min(tmp2, tmp[1] / 2);
tmp[1] -= tmp3 * 2;
tmp[0] -= tmp3;
ans += tmp3;
tmp3 = 0;
for (int i = 'v' - 'a'; i < 'y' - 'a'; i++) tmp3 += cnt[i];
tmp3 = min(tmp3, tmp[0]);
ans += tmp3;
tmp[0] -= tmp3;
ans += tmp[0] / 2;
ans += cnt['z' - 'a'];
cout << ans << endl;
return 0;
}