結果
| 問題 |
No.145 yukiover
|
| コンテスト | |
| ユーザー |
fiord
|
| 提出日時 | 2015-08-19 20:51:03 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 736 bytes |
| コンパイル時間 | 1,274 ms |
| コンパイル使用メモリ | 159,800 KB |
| 実行使用メモリ | 10,016 KB |
| 最終ジャッジ日時 | 2024-07-18 10:34:36 |
| 合計ジャッジ時間 | 7,768 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 1 TLE * 1 -- * 2 |
| other | -- * 20 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:34:9: warning: iteration 2147483640 invokes undefined behavior [-Waggressive-loop-optimizations]
34 | for(int i=7;i>=0;i++){
| ^~~
main.cpp:34:22: note: within this loop
34 | for(int i=7;i>=0;i++){
| ~^~~
ソースコード
#include <bits/stdc++.h>
using namespace std;
int backet[26];
int main(){
int n; cin>>n;
string s; cin>>s;
for(int i=0;i<n;i++) backet[s[i]-'a']++;
int yuki[]={26,24,20,10,8};
int ans=0;
int cnt=backet[yuki[1]];
int use=(1<<30);
for(int i=1;i<5;i++){
for(int j=yuki[i-1]-1;j>yuki[i];j--){
ans+=min(backet[j],use);
use-=min(backet[j],use);
if(use<=0) goto end;
}
if(i>1) cnt=use;
use=min(use,yuki[i]);
if(cnt-use>0){
cnt-=use;
ans+=cnt/2;
if(cnt%2&&use){
ans++; use--;
cnt=0;
}
}
else if(cnt-use<0){
cnt=use-cnt;
ans+=min(use,cnt);
use-=min(use,cnt);
}
}
for(int i=7;i>=0;i++){
ans+=min(use,backet[i]);
use-=min(use,backet[i]);
}
end:;
cout<<ans<<endl;
return 0;
}
fiord