#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 = 1; i <= n; i++) cin >> a[i];
build(1, 1, n);
int q;
cin >> q;
while (q--)
{
int tip;
cin >> tip;
if (tip == 1)
{
for (int i = 1; i <= n - 1; i++)
{
if (a[i] < a[i + 1]) swap(a[i], a[i + 1]);
}
build(1, 1, n);
}
else
{
int l, r;
cin >> l >> r;
cout << get(1, 1, n, l, r) << nn;
}
}
}
# | 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... |