# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
681287 | 2023-01-12T16:49:42 Z | whqkrtk04 | Arranging Shoes (IOI19_shoes) | C++17 | 200 ms | 141388 KB |
#include "shoes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<int, pii> piii; typedef pair<ll, ll> pll; typedef pair<ll, pll> plll; #define fi first #define se second const int INF = 1e9+1; const int P = 1000000007; const ll LLINF = (ll)1e18+1; template <typename T> ostream& operator<<(ostream& os, const vector<T>& v) { for(auto i : v) os << i << " "; os << "\n"; return os; } template <typename T1, typename T2> ostream& operator<<(ostream& os, const pair<T1, T2>& p) { os << p.fi << " " << p.se; return os; } class segtree { private: int n; vector<int> seg; void update(int i, int s, int e, int j, int x) { if(j >= e || s > j) return; if(s+1 == e) seg[i] += x; else { update(i<<1, s, s+e>>1, j, x); update(i<<1|1, s+e>>1, e, j, x); seg[i] = seg[i<<1]+seg[i<<1|1]; } } int query(int i, int s, int e, int l, int r) { if(e <= l || r <= s) return 0; if(l <= s && e <= r) return seg[i]; return query(i<<1, s, s+e>>1, l, r)+query(i<<1|1, s+e>>1, e, l, r); } public: segtree(int n) { this->n = n; seg.resize(4*n); } void update(int j) { update(1, 0, n, j, 1); } int query(int j) { return query(1, 0, n, j, n); } }; ll count_swaps(vector<int> s) { vector<queue<int>> A(s.size()>>1), B(s.size()>>1); for(int i = 0, cnt = 0; i < s.size(); i++) { int idx = abs(s[i])-1; if(s[i] < 0) { if(A[idx].size()) { int tmp = A[idx].front(); A[idx].pop(); s[i] = cnt*2, s[tmp] = cnt*2+1; cnt++; } else B[idx].push(i); } else { if(B[idx].size()) { int tmp = B[idx].front(); B[idx].pop(); s[tmp] = cnt*2, s[i] = cnt*2+1; cnt++; } else A[idx].push(i); } } segtree S(s.size()); ll ans = 0LL; for(int i = 0; i < s.size(); i++) { ans += S.query(s[i]); S.update(s[i]); } return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 212 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Correct | 0 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 212 KB | Output is correct |
11 | Correct | 0 ms | 212 KB | Output is correct |
12 | Correct | 0 ms | 212 KB | Output is correct |
13 | Correct | 0 ms | 212 KB | Output is correct |
14 | Correct | 0 ms | 212 KB | Output is correct |
15 | Correct | 1 ms | 212 KB | Output is correct |
16 | Correct | 1 ms | 212 KB | Output is correct |
17 | Correct | 0 ms | 212 KB | Output is correct |
18 | Correct | 0 ms | 212 KB | Output is correct |
19 | Correct | 0 ms | 212 KB | Output is correct |
20 | Correct | 1 ms | 212 KB | Output is correct |
21 | Correct | 0 ms | 212 KB | Output is correct |
22 | Correct | 1 ms | 296 KB | Output is correct |
23 | Correct | 1 ms | 304 KB | Output is correct |
24 | Correct | 0 ms | 212 KB | Output is correct |
25 | Correct | 0 ms | 212 KB | Output is correct |
26 | Correct | 1 ms | 212 KB | Output is correct |
27 | Correct | 0 ms | 300 KB | Output is correct |
28 | Correct | 0 ms | 212 KB | Output is correct |
29 | Correct | 1 ms | 212 KB | Output is correct |
30 | Correct | 1 ms | 300 KB | Output is correct |
31 | Correct | 0 ms | 212 KB | Output is correct |
32 | Correct | 1 ms | 212 KB | Output is correct |
33 | Correct | 0 ms | 304 KB | Output is correct |
34 | Correct | 0 ms | 212 KB | Output is correct |
35 | Correct | 0 ms | 212 KB | Output is correct |
36 | Correct | 0 ms | 296 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 0 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 336 KB | Output is correct |
5 | Correct | 0 ms | 296 KB | Output is correct |
6 | Correct | 0 ms | 212 KB | Output is correct |
7 | Correct | 1 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Correct | 1 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 212 KB | Output is correct |
11 | Correct | 0 ms | 212 KB | Output is correct |
12 | Correct | 1 ms | 212 KB | Output is correct |
13 | Correct | 0 ms | 212 KB | Output is correct |
14 | Correct | 0 ms | 212 KB | Output is correct |
15 | Correct | 1 ms | 340 KB | Output is correct |
16 | Correct | 1 ms | 340 KB | Output is correct |
17 | Correct | 1 ms | 724 KB | Output is correct |
18 | Correct | 2 ms | 1620 KB | Output is correct |
19 | Correct | 2 ms | 1620 KB | Output is correct |
20 | Correct | 13 ms | 14292 KB | Output is correct |
21 | Correct | 13 ms | 14344 KB | Output is correct |
22 | Correct | 132 ms | 140884 KB | Output is correct |
23 | Correct | 129 ms | 140904 KB | Output is correct |
24 | Correct | 126 ms | 140904 KB | Output is correct |
25 | Correct | 131 ms | 141124 KB | Output is correct |
26 | Correct | 143 ms | 140852 KB | Output is correct |
27 | Correct | 142 ms | 140868 KB | Output is correct |
28 | Correct | 136 ms | 141272 KB | Output is correct |
29 | Correct | 133 ms | 141388 KB | Output is correct |
30 | Correct | 135 ms | 141260 KB | Output is correct |
31 | Correct | 136 ms | 140800 KB | Output is correct |
32 | Correct | 130 ms | 141324 KB | Output is correct |
33 | Correct | 135 ms | 141032 KB | Output is correct |
34 | Correct | 134 ms | 141320 KB | Output is correct |
35 | Correct | 0 ms | 212 KB | Output is correct |
36 | Correct | 1 ms | 212 KB | Output is correct |
37 | Correct | 136 ms | 141320 KB | Output is correct |
38 | Correct | 134 ms | 141248 KB | Output is correct |
39 | Correct | 154 ms | 141324 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
3 | Correct | 0 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 166 ms | 140844 KB | Output is correct |
6 | Correct | 148 ms | 140832 KB | Output is correct |
7 | Correct | 164 ms | 140864 KB | Output is correct |
8 | Correct | 132 ms | 141328 KB | Output is correct |
9 | Correct | 158 ms | 140908 KB | Output is correct |
10 | Correct | 158 ms | 140808 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 212 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Correct | 0 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 212 KB | Output is correct |
11 | Correct | 0 ms | 212 KB | Output is correct |
12 | Correct | 0 ms | 212 KB | Output is correct |
13 | Correct | 0 ms | 212 KB | Output is correct |
14 | Correct | 0 ms | 212 KB | Output is correct |
15 | Correct | 1 ms | 212 KB | Output is correct |
16 | Correct | 1 ms | 212 KB | Output is correct |
17 | Correct | 0 ms | 212 KB | Output is correct |
18 | Correct | 0 ms | 212 KB | Output is correct |
19 | Correct | 0 ms | 212 KB | Output is correct |
20 | Correct | 1 ms | 212 KB | Output is correct |
21 | Correct | 0 ms | 212 KB | Output is correct |
22 | Correct | 1 ms | 296 KB | Output is correct |
23 | Correct | 1 ms | 304 KB | Output is correct |
24 | Correct | 0 ms | 212 KB | Output is correct |
25 | Correct | 0 ms | 212 KB | Output is correct |
26 | Correct | 1 ms | 212 KB | Output is correct |
27 | Correct | 0 ms | 300 KB | Output is correct |
28 | Correct | 0 ms | 212 KB | Output is correct |
29 | Correct | 1 ms | 212 KB | Output is correct |
30 | Correct | 1 ms | 300 KB | Output is correct |
31 | Correct | 0 ms | 212 KB | Output is correct |
32 | Correct | 1 ms | 212 KB | Output is correct |
33 | Correct | 0 ms | 304 KB | Output is correct |
34 | Correct | 0 ms | 212 KB | Output is correct |
35 | Correct | 0 ms | 212 KB | Output is correct |
36 | Correct | 0 ms | 296 KB | Output is correct |
37 | Correct | 1 ms | 212 KB | Output is correct |
38 | Correct | 1 ms | 296 KB | Output is correct |
39 | Correct | 1 ms | 424 KB | Output is correct |
40 | Correct | 1 ms | 596 KB | Output is correct |
41 | Correct | 2 ms | 1620 KB | Output is correct |
42 | Correct | 2 ms | 1588 KB | Output is correct |
43 | Correct | 2 ms | 1588 KB | Output is correct |
44 | Correct | 2 ms | 1592 KB | Output is correct |
45 | Correct | 2 ms | 1620 KB | Output is correct |
46 | Correct | 2 ms | 1620 KB | Output is correct |
47 | Correct | 2 ms | 1620 KB | Output is correct |
48 | Correct | 2 ms | 1588 KB | Output is correct |
49 | Correct | 1 ms | 1620 KB | Output is correct |
50 | Correct | 2 ms | 1620 KB | Output is correct |
51 | Correct | 4 ms | 1620 KB | Output is correct |
52 | Correct | 2 ms | 1588 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
3 | Correct | 1 ms | 212 KB | Output is correct |
4 | Correct | 0 ms | 212 KB | Output is correct |
5 | Correct | 0 ms | 212 KB | Output is correct |
6 | Correct | 1 ms | 212 KB | Output is correct |
7 | Correct | 0 ms | 212 KB | Output is correct |
8 | Correct | 1 ms | 212 KB | Output is correct |
9 | Correct | 0 ms | 212 KB | Output is correct |
10 | Correct | 0 ms | 212 KB | Output is correct |
11 | Correct | 0 ms | 212 KB | Output is correct |
12 | Correct | 0 ms | 212 KB | Output is correct |
13 | Correct | 0 ms | 212 KB | Output is correct |
14 | Correct | 0 ms | 212 KB | Output is correct |
15 | Correct | 1 ms | 212 KB | Output is correct |
16 | Correct | 1 ms | 212 KB | Output is correct |
17 | Correct | 0 ms | 212 KB | Output is correct |
18 | Correct | 0 ms | 212 KB | Output is correct |
19 | Correct | 0 ms | 212 KB | Output is correct |
20 | Correct | 1 ms | 212 KB | Output is correct |
21 | Correct | 0 ms | 212 KB | Output is correct |
22 | Correct | 1 ms | 296 KB | Output is correct |
23 | Correct | 1 ms | 304 KB | Output is correct |
24 | Correct | 0 ms | 212 KB | Output is correct |
25 | Correct | 0 ms | 212 KB | Output is correct |
26 | Correct | 1 ms | 212 KB | Output is correct |
27 | Correct | 0 ms | 300 KB | Output is correct |
28 | Correct | 0 ms | 212 KB | Output is correct |
29 | Correct | 1 ms | 212 KB | Output is correct |
30 | Correct | 1 ms | 300 KB | Output is correct |
31 | Correct | 0 ms | 212 KB | Output is correct |
32 | Correct | 1 ms | 212 KB | Output is correct |
33 | Correct | 0 ms | 304 KB | Output is correct |
34 | Correct | 0 ms | 212 KB | Output is correct |
35 | Correct | 0 ms | 212 KB | Output is correct |
36 | Correct | 0 ms | 296 KB | Output is correct |
37 | Correct | 0 ms | 212 KB | Output is correct |
38 | Correct | 0 ms | 336 KB | Output is correct |
39 | Correct | 0 ms | 296 KB | Output is correct |
40 | Correct | 0 ms | 212 KB | Output is correct |
41 | Correct | 1 ms | 212 KB | Output is correct |
42 | Correct | 1 ms | 212 KB | Output is correct |
43 | Correct | 1 ms | 212 KB | Output is correct |
44 | Correct | 0 ms | 212 KB | Output is correct |
45 | Correct | 0 ms | 212 KB | Output is correct |
46 | Correct | 1 ms | 212 KB | Output is correct |
47 | Correct | 0 ms | 212 KB | Output is correct |
48 | Correct | 0 ms | 212 KB | Output is correct |
49 | Correct | 1 ms | 340 KB | Output is correct |
50 | Correct | 1 ms | 340 KB | Output is correct |
51 | Correct | 1 ms | 724 KB | Output is correct |
52 | Correct | 2 ms | 1620 KB | Output is correct |
53 | Correct | 2 ms | 1620 KB | Output is correct |
54 | Correct | 13 ms | 14292 KB | Output is correct |
55 | Correct | 13 ms | 14344 KB | Output is correct |
56 | Correct | 132 ms | 140884 KB | Output is correct |
57 | Correct | 129 ms | 140904 KB | Output is correct |
58 | Correct | 126 ms | 140904 KB | Output is correct |
59 | Correct | 131 ms | 141124 KB | Output is correct |
60 | Correct | 143 ms | 140852 KB | Output is correct |
61 | Correct | 142 ms | 140868 KB | Output is correct |
62 | Correct | 136 ms | 141272 KB | Output is correct |
63 | Correct | 133 ms | 141388 KB | Output is correct |
64 | Correct | 135 ms | 141260 KB | Output is correct |
65 | Correct | 136 ms | 140800 KB | Output is correct |
66 | Correct | 130 ms | 141324 KB | Output is correct |
67 | Correct | 135 ms | 141032 KB | Output is correct |
68 | Correct | 134 ms | 141320 KB | Output is correct |
69 | Correct | 0 ms | 212 KB | Output is correct |
70 | Correct | 1 ms | 212 KB | Output is correct |
71 | Correct | 136 ms | 141320 KB | Output is correct |
72 | Correct | 134 ms | 141248 KB | Output is correct |
73 | Correct | 154 ms | 141324 KB | Output is correct |
74 | Correct | 1 ms | 212 KB | Output is correct |
75 | Correct | 1 ms | 212 KB | Output is correct |
76 | Correct | 0 ms | 212 KB | Output is correct |
77 | Correct | 0 ms | 212 KB | Output is correct |
78 | Correct | 166 ms | 140844 KB | Output is correct |
79 | Correct | 148 ms | 140832 KB | Output is correct |
80 | Correct | 164 ms | 140864 KB | Output is correct |
81 | Correct | 132 ms | 141328 KB | Output is correct |
82 | Correct | 158 ms | 140908 KB | Output is correct |
83 | Correct | 158 ms | 140808 KB | Output is correct |
84 | Correct | 1 ms | 212 KB | Output is correct |
85 | Correct | 1 ms | 296 KB | Output is correct |
86 | Correct | 1 ms | 424 KB | Output is correct |
87 | Correct | 1 ms | 596 KB | Output is correct |
88 | Correct | 2 ms | 1620 KB | Output is correct |
89 | Correct | 2 ms | 1588 KB | Output is correct |
90 | Correct | 2 ms | 1588 KB | Output is correct |
91 | Correct | 2 ms | 1592 KB | Output is correct |
92 | Correct | 2 ms | 1620 KB | Output is correct |
93 | Correct | 2 ms | 1620 KB | Output is correct |
94 | Correct | 2 ms | 1620 KB | Output is correct |
95 | Correct | 2 ms | 1588 KB | Output is correct |
96 | Correct | 1 ms | 1620 KB | Output is correct |
97 | Correct | 2 ms | 1620 KB | Output is correct |
98 | Correct | 4 ms | 1620 KB | Output is correct |
99 | Correct | 2 ms | 1588 KB | Output is correct |
100 | Correct | 2 ms | 1592 KB | Output is correct |
101 | Correct | 15 ms | 14340 KB | Output is correct |
102 | Correct | 14 ms | 14264 KB | Output is correct |
103 | Correct | 170 ms | 140880 KB | Output is correct |
104 | Correct | 200 ms | 140828 KB | Output is correct |
105 | Correct | 151 ms | 140888 KB | Output is correct |
106 | Correct | 161 ms | 140888 KB | Output is correct |
107 | Correct | 139 ms | 140828 KB | Output is correct |
108 | Correct | 142 ms | 140764 KB | Output is correct |
109 | Correct | 133 ms | 141224 KB | Output is correct |
110 | Correct | 134 ms | 141232 KB | Output is correct |
111 | Correct | 150 ms | 140876 KB | Output is correct |
112 | Correct | 166 ms | 140836 KB | Output is correct |
113 | Correct | 148 ms | 140800 KB | Output is correct |
114 | Correct | 157 ms | 140816 KB | Output is correct |
115 | Correct | 153 ms | 140832 KB | Output is correct |