結果
| 問題 |
No.145 yukiover
|
| コンテスト | |
| ユーザー |
greentea011
|
| 提出日時 | 2019-04-09 15:36:16 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 8 ms / 5,000 ms |
| コード長 | 1,813 bytes |
| コンパイル時間 | 315 ms |
| コンパイル使用メモリ | 43,604 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-07-01 23:02:05 |
| 合計ジャッジ時間 | 1,238 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 20 |
ソースコード
#include <stdio.h>
#include <algorithm>
int main() {
int a[9] = {0};
int n;
char c;
scanf("%d\n",&n);
for(int i=0;i<n;i++){
scanf("%c",&c);
if (c <= 'h') a[0]++;
else if (c == 'i') a[1]++;
else if (c == 'j') a[2]++;
else if (c == 'k') a[3]++;
else if (c <= 't') a[4]++;
else if (c == 'u') a[5]++;
else if (c <= 'x') a[6]++;
else if (c == 'y') a[7]++;
else a[8]++;
}
int happy=a[8];
a[8]=0;
if (a[7] && a[6]) {
int dd=std::min({a[7],a[6]});
happy+=dd;
a[7]-=dd;
a[6]-=dd;
}
if (a[7] && a[5] && a[4]) {
int dd=std::min({a[7],a[5],a[4]});
happy+=dd;
a[7]-=dd;
a[5]-=dd;
a[4]-=dd;
}
if (a[7] && a[5] && a[3] && a[2]) {
int dd=std::min({a[7],a[5],a[3],a[2]});
happy+=dd;
a[7]-=dd;
a[5]-=dd;
a[3]-=dd;
a[2]-=dd;
}
if (a[7] && a[5] && a[3] && a[1] && a[0]) {
int dd=std::min({a[7],a[5],a[3],a[1],a[0]});
happy+=dd;
a[7]-=dd;
a[5]-=dd;
a[3]-=dd;
a[1]-=dd;
a[0]-=dd;
}
if (a[7] && a[5] && a[3] && (a[1]>=2)) {
int dd=std::min({a[7],a[5],a[3],a[1]/2});
happy+=dd;
a[7]-=dd;
a[5]-=dd;
a[3]-=dd;
a[1]-=(2*dd);
}
if (a[7] && a[5] && (a[3]>=2)) {
int dd=std::min({a[7],a[5],a[3]/2});
happy+=dd;
a[7]-=dd;
a[5]-=dd;
a[3]-=(2*dd);
}
if (a[7] && (a[5]>=2)) {
int dd=std::min({a[7],a[5]/2});
happy+=dd;
a[7]-=dd;
a[5]-=(2*dd);
}
if (a[7]>=2) {
int dd=a[7]/2;
happy+=dd;
a[7]-=(2*dd);
}
printf ("%d\n",happy);
}
greentea011