Submission #1271338

#TimeUsernameProblemLanguageResultExecution timeMemory
1271338bnijaamaaBubble Sort Machine (JOI25_bubble)C++20
5 / 100
2093 ms20156 KiB
#include <bits/stdc++.h>

using namespace std;
#define int long long
#define nn '\n'
const int N = 5e5 + 1;
int t[N * 4], a[N];
void build(int v, int tl, int tr)
{
    if (tr == tl)
    {
        t[v] = a[tl];
        return;
    }
    int mid = (tl + tr) / 2;
    build(v + v, tl, mid);
    build(v + v + 1, mid + 1, tr);
    t[v] = t[v + v] + t[v + v + 1];
}
int get(int v, int tl, int tr, int l, int r)
{
    if (l > tr || r < tl) return 0;
    if (l <= tl && r >= tr)
    {
        return t[v];
    }
    int mid = (tl + tr) / 2;
    int s = get(v + v, tl, mid, l, r);
    int g = get(v + v + 1, mid + 1, tr, l, r);
    return s + g;
}

signed main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) cin >> a[i];
    build(1, 0, n - 1);
    int q;
    cin >> q;
    while (q--)
    {
        int tip;
        cin >> tip;
        if (tip == 1)
        {
            bool ok = false;
            for (int i = 0; i < n - 1; i++) {
                if (a[i] > a[i + 1]) {
                    swap(a[i], a[i + 1]);
                    ok = true;
                }
            }
            if (ok) build(1, 0, n - 1);

        }
        else
        {
            int l, r;
            cin >> l >> r;
            l-- , r--;
            cout << get(1, 0, n - 1, l, r) << nn;
        }
    }
}
#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...