Submission #56372128
Source Code Expand
#include<bits/stdc++.h> using namespace std; using ll = long long; #define all(x) (x).begin(), (x).end() template<class T> struct BIT { int n; vector<T> bit; void init(int sz) { bit = vector<T> (n = sz + 7); } void upd(int i, T x) { for (i++; i < n; i += i & -i) bit[i] += x; } T query(int i) { T ret = 0; for (i++; i > 0; i -= i & -i) ret += bit[i]; return ret; } T query(int l, int r) { return query(r) - query(l - 1); }; }; const int N = 2e5 + 7; int n, m; int p[N], a[N], cnt[N]; vector<int> e[N], f[N]; int main() { cin.tie(0)->sync_with_stdio(false); cin >> n; for (int i = 1; i <= n; i++) cin >> p[i]; cin >> m; BIT<int> bit; bit.init(n + 1); for (int i = 1; i <= m; i++) { cin >> a[i]; int lo = 1, hi = n; while (lo < hi) { int mid = (lo + hi + 1) / 2; if (mid - bit.query(mid, n) <= a[i]) lo = mid; else hi = mid - 1; } a[i] = lo; bit.upd(a[i], 1); e[a[i]].push_back(i); } bit.init(n + 1); ll inv = 0; for (int i = 1; i <= n; i++) { cnt[i] = bit.query(p[i], n); inv += cnt[i]; bit.upd(p[i], 1); } bit.init(m + 1); for (int i = n; i >= 1; i--) { for (int j : e[i]) bit.upd(j, 1); // find cnt[i]'th one if (cnt[i] > 0) { int lo = 1, hi = m; while (lo < hi) { int mid = (lo + hi + 1) / 2; if (bit.query(1, mid) <= cnt[i]) lo = mid; else hi = mid - 1; } f[lo].push_back(i); } } bit.init(n + 1); for (int i = 1; i <= n; i++) { if (cnt[i] > 0) bit.upd(i, 1); } for (int i = 1; i <= m; i++) { inv -= bit.query(1, a[i]); for (int j : f[i]) bit.upd(j, -1); cout << inv << '\n'; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Prefix Bubble Sort |
User | juliany2 |
Language | C++ 20 (gcc 12.2) |
Score | 700 |
Code Size | 2172 Byte |
Status | AC |
Exec Time | 144 ms |
Memory | 26608 KiB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_01.txt, 00_sample_02.txt |
All | 00_sample_01.txt, 00_sample_02.txt, 01_random_case_01.txt, 01_random_case_02.txt, 01_random_case_03.txt, 01_random_case_04.txt, 01_random_case_05.txt, 01_random_case_06.txt, 01_random_case_07.txt, 01_random_case_08.txt, 01_random_case_09.txt, 01_random_case_10.txt, 01_random_case_11.txt, 01_random_case_12.txt, 01_random_case_13.txt, 01_random_case_14.txt, 01_random_case_15.txt, 01_random_case_16.txt, 01_random_case_17.txt, 01_random_case_18.txt, 01_random_case_19.txt, 01_random_case_20.txt, 01_random_case_21.txt, 01_random_case_22.txt, 01_random_case_23.txt, 01_random_case_24.txt, 01_random_case_25.txt, 01_random_case_26.txt, 01_random_case_27.txt, 01_random_case_28.txt, 01_random_case_29.txt, 01_random_case_30.txt, 02_max_case_01.txt, 02_max_case_02.txt, 02_max_case_03.txt, 02_max_case_04.txt, 02_max_case_05.txt, 02_max_case_06.txt, 02_max_case_07.txt, 02_max_case_08.txt, 02_max_case_09.txt, 02_max_case_10.txt, 02_max_case_11.txt, 02_max_case_12.txt, 02_max_case_13.txt, 02_max_case_14.txt, 02_max_case_15.txt, 02_max_case_16.txt, 02_max_case_17.txt, 02_max_case_18.txt, 02_max_case_19.txt, 02_max_case_20.txt, 02_max_case_21.txt, 02_max_case_22.txt, 02_max_case_23.txt, 02_max_case_24.txt, 02_max_case_25.txt, 02_max_case_26.txt, 02_max_case_27.txt, 02_max_case_28.txt, 02_max_case_29.txt, 02_max_case_30.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt, 03_handmade_05.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01.txt | AC | 3 ms | 3484 KiB |
00_sample_02.txt | AC | 3 ms | 3576 KiB |
01_random_case_01.txt | AC | 83 ms | 17756 KiB |
01_random_case_02.txt | AC | 69 ms | 15660 KiB |
01_random_case_03.txt | AC | 64 ms | 9432 KiB |
01_random_case_04.txt | AC | 64 ms | 8500 KiB |
01_random_case_05.txt | AC | 63 ms | 10448 KiB |
01_random_case_06.txt | AC | 108 ms | 18800 KiB |
01_random_case_07.txt | AC | 96 ms | 16792 KiB |
01_random_case_08.txt | AC | 93 ms | 13248 KiB |
01_random_case_09.txt | AC | 83 ms | 9600 KiB |
01_random_case_10.txt | AC | 96 ms | 12020 KiB |
01_random_case_11.txt | AC | 92 ms | 18516 KiB |
01_random_case_12.txt | AC | 80 ms | 15912 KiB |
01_random_case_13.txt | AC | 76 ms | 10420 KiB |
01_random_case_14.txt | AC | 74 ms | 9880 KiB |
01_random_case_15.txt | AC | 80 ms | 12600 KiB |
01_random_case_16.txt | AC | 93 ms | 18868 KiB |
01_random_case_17.txt | AC | 77 ms | 16788 KiB |
01_random_case_18.txt | AC | 74 ms | 11636 KiB |
01_random_case_19.txt | AC | 74 ms | 10672 KiB |
01_random_case_20.txt | AC | 76 ms | 14160 KiB |
01_random_case_21.txt | AC | 96 ms | 19388 KiB |
01_random_case_22.txt | AC | 77 ms | 15272 KiB |
01_random_case_23.txt | AC | 70 ms | 7504 KiB |
01_random_case_24.txt | AC | 66 ms | 7648 KiB |
01_random_case_25.txt | AC | 64 ms | 7472 KiB |
01_random_case_26.txt | AC | 95 ms | 18724 KiB |
01_random_case_27.txt | AC | 80 ms | 15716 KiB |
01_random_case_28.txt | AC | 77 ms | 9576 KiB |
01_random_case_29.txt | AC | 73 ms | 8544 KiB |
01_random_case_30.txt | AC | 76 ms | 10208 KiB |
02_max_case_01.txt | AC | 106 ms | 22900 KiB |
02_max_case_02.txt | AC | 87 ms | 19476 KiB |
02_max_case_03.txt | AC | 84 ms | 12036 KiB |
02_max_case_04.txt | AC | 81 ms | 10868 KiB |
02_max_case_05.txt | AC | 81 ms | 13380 KiB |
02_max_case_06.txt | AC | 144 ms | 24116 KiB |
02_max_case_07.txt | AC | 131 ms | 21212 KiB |
02_max_case_08.txt | AC | 131 ms | 16352 KiB |
02_max_case_09.txt | AC | 110 ms | 12320 KiB |
02_max_case_10.txt | AC | 140 ms | 15692 KiB |
02_max_case_11.txt | AC | 123 ms | 23612 KiB |
02_max_case_12.txt | AC | 102 ms | 20384 KiB |
02_max_case_13.txt | AC | 97 ms | 13080 KiB |
02_max_case_14.txt | AC | 97 ms | 12672 KiB |
02_max_case_15.txt | AC | 104 ms | 16456 KiB |
02_max_case_16.txt | AC | 116 ms | 24148 KiB |
02_max_case_17.txt | AC | 100 ms | 20792 KiB |
02_max_case_18.txt | AC | 97 ms | 13968 KiB |
02_max_case_19.txt | AC | 94 ms | 13812 KiB |
02_max_case_20.txt | AC | 100 ms | 18628 KiB |
02_max_case_21.txt | AC | 124 ms | 24720 KiB |
02_max_case_22.txt | AC | 102 ms | 19244 KiB |
02_max_case_23.txt | AC | 90 ms | 9396 KiB |
02_max_case_24.txt | AC | 86 ms | 9000 KiB |
02_max_case_25.txt | AC | 83 ms | 9048 KiB |
02_max_case_26.txt | AC | 123 ms | 24116 KiB |
02_max_case_27.txt | AC | 105 ms | 19964 KiB |
02_max_case_28.txt | AC | 100 ms | 11940 KiB |
02_max_case_29.txt | AC | 96 ms | 10904 KiB |
02_max_case_30.txt | AC | 101 ms | 13112 KiB |
03_handmade_01.txt | AC | 3 ms | 3504 KiB |
03_handmade_02.txt | AC | 2 ms | 3480 KiB |
03_handmade_03.txt | AC | 99 ms | 18556 KiB |
03_handmade_04.txt | AC | 61 ms | 7936 KiB |
03_handmade_05.txt | AC | 110 ms | 26608 KiB |