Submission #1016200

#TimeUsernameProblemLanguageResultExecution timeMemory
1016200BestCrazyNoobArranging Shoes (IOI19_shoes)C++17
15 / 100
14 ms3164 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; struct SegTree { int sz; vector<int> tree; int ql, qr; void merge(int i) { tree[i] = tree[2*i]+tree[2*i+1]; } SegTree(int N) { sz = 1; while (sz < N) sz *= 2; tree.resize(2*sz); for (int i = sz; i < sz+N; i++) tree[i] = 1; for (int i = sz+N; i < 2*sz; i++) tree[i] = 0; for (int i = sz-1; i >= 1; i--) merge(i); } int __query(int ni, int nl, int nr) { if (qr <= nl || nr <= ql) return 0; if (ql <= nl && nr <= qr) return tree[ni]; int nm = (nl+nr)/2; return __query(2*ni, nl, nm) + __query(2*ni+1, nm, nr); } int query(int l, int r) { ql = l; qr = r; return __query(1, 0, sz); } void set0(int i) { i += sz; tree[i] = 0; for (i /= 2; i >= 1; i /= 2) { merge(i); } } }; long long count_swaps(vector<int> S) { const int N = S.size() / 2; return N*(long long)(N-1)/2; }
#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...