結果
問題 | No.145 yukiover |
ユーザー |
![]() |
提出日時 | 2015-02-06 01:41:51 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1 ms / 5,000 ms |
コード長 | 1,021 bytes |
コンパイル時間 | 213 ms |
コンパイル使用メモリ | 35,660 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-23 10:00:43 |
合計ジャッジ時間 | 988 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 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;}