제출 #1271338

#제출 시각아이디문제언어결과실행 시간메모리
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...