Submission #2173752
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
const int N = 200005;
const int INF = 2e9;
int n, a[N];
vector <int> z;
pair<int,int> T[N << 2];
int lz[N << 2]; // the amount of adding
#define mid ((l + r) >> 1)
void build(int v, int l, int r) {
if (l == r) { T[v] = {z[l - 1], l}; return; }
build(v << 1, l, mid);
build(v << 1 | 1, mid + 1, r);
T[v] = min(T[v << 1], T[v << 1 | 1]);
}
void push(int v, int l, int r) {
if (lz[v] == 0) return;
if (l < r) lz[v << 1] += lz[v], lz[v << 1 | 1] += lz[v];
T[v].first += lz[v];
lz[v] = 0;
}
void upd(int v, int l, int r, int L, int R, int val) {
push(v, l, r);
if (R < l || L > r) return;
if (L <= l && r <= R) {
lz[v] = val; push(v, l, r); return;
}
upd(v << 1, l, mid, L, R, val);
upd(v << 1 | 1, mid + 1, r, L, R, val);
T[v] = min(T[v << 1], T[v << 1 | 1]);
}
pair<int,int> get(int v, int l, int r, int L, int R) {
push(v, l, r);
if (R < l || L > r) return {INF, 0};
if (L <= l && r <= R) return T[v];
return min(get(v << 1, l, mid, L, R), get(v << 1 | 1, mid + 1, r, L, R));
}
#undef mid
int main() {
ios_base::sync_with_stdio(false); cin.tie(0);
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> a[i];
z.push_back(a[i]);
}
sort(z.begin(), z.end());
z.erase(unique(z.begin(), z.end()), z.end());
build(1, 1, z.size());
long long res = 0; // result
for (int i = 1; i <= n; ++i) {
int p = lower_bound(z.begin(), z.end(), a[i]) - z.begin() + 1;
pair<int, int> w = get(1, 1, z.size(), p, z.size()); // get min cost
int wcost = w.first;
int wpos = w.second;
res += wcost - a[i];
upd(1, 1, z.size(), 1, wpos - 1, +1);
}
cout << res << endl;
}
Submission Info
Submission Time |
|
Task |
B - Increment and Swap |
User |
cheater2k |
Language |
C++14 (GCC 5.4.1) |
Score |
1500 |
Code Size |
1715 Byte |
Status |
AC |
Exec Time |
189 ms |
Memory |
10100 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1500 / 1500 |
Status |
|
|
Set Name |
Test Cases |
Sample |
example0.txt, example1.txt |
All |
000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, example0.txt, example1.txt |
Case Name |
Status |
Exec Time |
Memory |
000.txt |
AC |
167 ms |
7028 KB |
001.txt |
AC |
168 ms |
7028 KB |
002.txt |
AC |
170 ms |
7028 KB |
003.txt |
AC |
171 ms |
7028 KB |
004.txt |
AC |
176 ms |
7028 KB |
005.txt |
AC |
172 ms |
7028 KB |
006.txt |
AC |
172 ms |
7028 KB |
007.txt |
AC |
176 ms |
7028 KB |
008.txt |
AC |
176 ms |
7028 KB |
009.txt |
AC |
178 ms |
7028 KB |
010.txt |
AC |
179 ms |
7028 KB |
011.txt |
AC |
180 ms |
10100 KB |
012.txt |
AC |
180 ms |
10100 KB |
013.txt |
AC |
180 ms |
10100 KB |
014.txt |
AC |
181 ms |
10100 KB |
015.txt |
AC |
181 ms |
10100 KB |
016.txt |
AC |
184 ms |
10100 KB |
017.txt |
AC |
184 ms |
10100 KB |
018.txt |
AC |
183 ms |
10100 KB |
019.txt |
AC |
185 ms |
10100 KB |
020.txt |
AC |
184 ms |
10100 KB |
021.txt |
AC |
16 ms |
2688 KB |
022.txt |
AC |
160 ms |
7028 KB |
023.txt |
AC |
74 ms |
5752 KB |
024.txt |
AC |
29 ms |
3068 KB |
025.txt |
AC |
99 ms |
6008 KB |
026.txt |
AC |
19 ms |
2816 KB |
027.txt |
AC |
128 ms |
6772 KB |
028.txt |
AC |
64 ms |
5624 KB |
029.txt |
AC |
61 ms |
5624 KB |
030.txt |
AC |
63 ms |
5624 KB |
031.txt |
AC |
131 ms |
6644 KB |
032.txt |
AC |
81 ms |
5752 KB |
033.txt |
AC |
82 ms |
6264 KB |
034.txt |
AC |
141 ms |
6772 KB |
035.txt |
AC |
25 ms |
2944 KB |
036.txt |
AC |
160 ms |
9972 KB |
037.txt |
AC |
122 ms |
6644 KB |
038.txt |
AC |
31 ms |
3068 KB |
039.txt |
AC |
92 ms |
6392 KB |
040.txt |
AC |
82 ms |
6264 KB |
041.txt |
AC |
159 ms |
9972 KB |
042.txt |
AC |
128 ms |
10100 KB |
043.txt |
AC |
129 ms |
10100 KB |
044.txt |
AC |
188 ms |
10100 KB |
045.txt |
AC |
2 ms |
2304 KB |
046.txt |
AC |
39 ms |
3956 KB |
047.txt |
AC |
189 ms |
10100 KB |
048.txt |
AC |
29 ms |
3956 KB |
049.txt |
AC |
36 ms |
3956 KB |
050.txt |
AC |
51 ms |
3956 KB |
051.txt |
AC |
81 ms |
3956 KB |
052.txt |
AC |
112 ms |
4084 KB |
053.txt |
AC |
145 ms |
4212 KB |
054.txt |
AC |
180 ms |
7028 KB |
055.txt |
AC |
26 ms |
3956 KB |
056.txt |
AC |
33 ms |
3956 KB |
057.txt |
AC |
49 ms |
3956 KB |
058.txt |
AC |
72 ms |
3956 KB |
059.txt |
AC |
105 ms |
4084 KB |
060.txt |
AC |
139 ms |
4212 KB |
061.txt |
AC |
174 ms |
7028 KB |
062.txt |
AC |
122 ms |
7028 KB |
063.txt |
AC |
118 ms |
7028 KB |
example0.txt |
AC |
2 ms |
2304 KB |
example1.txt |
AC |
2 ms |
2304 KB |