結果
問題 |
No.3114 0→1
|
ユーザー |
|
提出日時 | 2025-04-14 19:28:52 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 738 bytes |
コンパイル時間 | 6,072 ms |
コンパイル使用メモリ | 332,612 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-04-15 20:43:46 |
合計ジャッジ時間 | 7,961 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | WA * 30 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; using ll = long long; int op(int a,int b){ return min(a,b); } int e(){ return 1e9; } int mapping(int a,int b){ return a + b; } int composition(int a,int b){ return a + b; } int id(){ return 0; } int n,ans; string s; int main(){ cin >> n >> s; vector<int> sum(n + 1,0); for(int i = 0; i < n; i++){ sum[i + 1] = sum[i] + 2 * (s[i] - '0') - 1; } lazy_segtree<int,op,e,int,mapping,composition,id> seg(sum); for(int i = n; i >= 2; i--){ int mi = seg.prod(0,i - 1); if(seg.get(i) < mi){ ans++; seg.apply(i, n + 1, 2); } } cout << ans << endl; }