結果
問題 | No.910 素数部分列 |
ユーザー |
|
提出日時 | 2019-10-18 23:12:10 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 6 ms / 1,000 ms |
コード長 | 1,135 bytes |
コンパイル時間 | 819 ms |
コンパイル使用メモリ | 86,240 KB |
実行使用メモリ | 5,544 KB |
最終ジャッジ日時 | 2024-06-25 21:51:36 |
合計ジャッジ時間 | 2,159 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 50 |
ソースコード
#include<iostream> #include<string> #include<iomanip> #include<cmath> #include<vector> #include<algorithm> #include<stack> using namespace std; #define int long long #define endl "\n" const long long INF = (long long)1e18; const long long MOD = 1'000'000'007; string yn(bool f){return f?"Yes":"No";} string YN(bool f){return f?"YES":"NO";} signed main(){ cin.tie(nullptr); ios::sync_with_stdio(false); cout<<fixed<<setprecision(10); int N, con = 0; string S; int con1 = 0, con9 = 0; vector<int> hoge, fuga, x; cin>>N; cin>>S; con1 = count(S.begin(), S.end(), '1'); for(int i = 0; i < S.size(); i++){ // cout<<"i = "<<i<<" "<<con1<<" "<<con9<<" "<<con<<" S = "<<S[i]<<endl; if(S[i] == '1') { x.push_back(1); } else if(S[i] == '9'){ if(x.size() && x.back() == 1){ x.pop_back(); con++; con1--; } else { x.push_back(9); } } else { con++; } } int a = 0, b = 0; for(int i = 0; i < x.size(); i++){ if(x[i] == 1){ if(b >= 2){ b -= 2; con++; con1--; } else { a++; } } else { b++; } } con += con1/2; cout<<con<<endl; return 0; }