結果
問題 |
No.910 素数部分列
|
ユーザー |
![]() |
提出日時 | 2019-10-18 22:08:00 |
言語 | C++17(clang) (17.0.6 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 783 bytes |
コンパイル時間 | 975 ms |
コンパイル使用メモリ | 120,704 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-30 15:04:23 |
合計ジャッジ時間 | 2,024 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 WA * 28 |
ソースコード
#include <iostream> using namespace std; int main(){ int N; string S,T = ""; cin >> N >> S; int ans = 0; for(int i=0;i<N;i++){ if(S[i]!='1' && S[i]!='9') ans++; else T += S[i]; } int one = 0,nine = 0; int ans2 = 0; int n = T.size(); for(int i=n-1;i>=0;i--){ if(T[i]=='9') nine++; else{ if(nine){ nine--; ans2++; }else one++; } } ans2 += one/2; one = 0,nine = 0; int ans3 = 0; for(int i=0;i<n;i++){ if(T[i]=='9') nine++; else{ if(nine>=2){ nine -= 2; ans3++; }else one++; } } ans3 += one/2; cout << ans+max(ans2,ans3) << endl; }