#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
ios::sync_with_stdio(0);
cin.tie(nullptr); cout.tie(nullptr);
int n, q, upd = 0;
cin >> n;
vector<int> a(n + 1, 0), ones;
for(int i = 1; i <= n; ++i) cin >> a[i];
for(int i = 1; i <= n; ++i){
if(a[i] == 1) ones.push_back(i);
}
cin >> q;
auto sum = [&](int i) -> int {
if(i == 0 || (int) ones.size() == 0) return 0;
int ans = 0, st = 0, en = (int) ones.size() - 1;
while(st <= en){
int mid = st + (en - st) / 2;
if((ones[mid] - upd) <= i){
st = mid + 1;
}else{
en = mid - 1;
}
}
return min(i, st);
};
while(q--){
int t, l, r;
cin >> t;
if(t == 1){
upd += 1;
}else{
cin >> l >> r;
cout << (r - l + 1) * 2 - sum(r) + sum(l - 1) << "\n";
}
}
return 0;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |