Submission #1318517

#TimeUsernameProblemLanguageResultExecution timeMemory
1318517vnhbestBubble Sort Machine (JOI25_bubble)C++20
0 / 100
133 ms11768 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll n, k = 0;
vector <ll> vec, pref_2, one;
ll sz;
ll bs (ll a) {
    ll l = 0, r = sz - 1, res = -1;
    while (l <= r) {
        ll mid = (l + r) / 2;
        ll temp = one[mid] - min(k, pref_2[mid]);
        if (temp <= a) {
            l = mid + 1;
            res = mid;
        }
        else {
            r = mid - 1;
        }
    }
    return res + 1;
}

int  main () {
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin >> n;
    for (ll i = 0; i < n; i++) {
        ll a;
        cin >> a;
        vec.push_back(a);
    }
    ll temp = 0;
    for (ll i = 0; i < n; i++) {
        if (vec[i] == 2) {
            temp++;
        }
        pref_2.push_back(temp);
        if (vec[i] == 1) {
            one.push_back(i);
        }
    }
    sz = one.size();
    ll q;
    cin >> q;
    while (q--) {
        ll skibidi_dopdop;
        cin >> skibidi_dopdop;
        if (skibidi_dopdop == 1) {
            k++;
        }
        else {
            ll a, b;
            cin >> a >> b;
            a--;b--;
            if (a - 1 < 0) {
                ll temp = bs(b);
                cout << ((b - a + 1) - temp) * 2 + temp << "\n";
            }
            else {
                ll temp = bs(b);
                temp -= bs(a - 1);
                cout << ((b - a + 1) - temp) * 2 + temp << "\n";
            }
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...