結果
| 問題 |
No.145 yukiover
|
| コンテスト | |
| ユーザー |
184
|
| 提出日時 | 2015-02-06 01:41:13 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,019 bytes |
| コンパイル時間 | 286 ms |
| コンパイル使用メモリ | 35,528 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-23 10:00:42 |
| 合計ジャッジ時間 | 989 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 4 |
| other | WA * 20 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:6:35: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
6 | int n;char s[100001];scanf("%d%s",&n,s);
| ~~~~~^~~~~~~~~~~~~
ソースコード
#include <stdio.h>
#include <algorithm>
using namespace std;
int main(){
int n;char s[100001];scanf("%d%s",&n,s);
int ans=0,c[150]={};
for(int i=0;i<n;i++){
c[s[i]]++;
}
int cy=0,overu=0,cu=0,overk=0,ck=0,overi=0,ci=0,cc=0;
for(char i='z';i>='a';i--){
if(i>'y')ans+=c[i];
else if(i=='y')cy+=c[i];
else if(i>'u')overu+=c[i];
else if(i=='u')cu+=c[i];
else if(i>'k')overk+=c[i];
else if(i=='k')ck+=c[i];
else if(i>'i')overi+=c[i];
else if(i=='i')ci+=c[i];
else cc+=c[i];
}
for(char i='z';i>='a';i--)if(c[i])printf("%d\n",c[i]);
int m=min(cy,min(cu,min(ck,min(ci,cc))));
ans+=m;cy-=m,cu-=m,ck-=m,ci-=m,cc-=m;
m=min(cy,min(cu,min(ck,ci/2)));
ans+=m;cy-=m,cu-=m,ck-=m,ci-=m;
m=min(cy,min(cu,min(ck,overi)));
ans+=m;cy-=m,cu-=m,ck-=m,overi-=m;
m=min(cy,min(cu,ck/2));
ans+=m;cy-=m,cu-=m,ck-=m;
m=min(cy,min(cu,overk));
ans+=m;cy-=m,cu-=m,overk-=m;
m=min(cy,cu/2);
ans+=m;cy-=m,cu-=m;
m=min(cy,overu);
ans+=m;cy-=m,overu-=m;
m=cy/2;
ans+=m;cy-=m;
printf("%d\n",ans);
return 0;
}
184