Submission #1188737

#TimeUsernameProblemLanguageResultExecution timeMemory
1188737Valters07Art Collections (BOI22_art)C++20
35 / 100
93 ms420 KiB
#include <bits/stdc++.h> #include "art.h" #define pb push_back using namespace std; int n; bool cmp(int a, int b) { vector<int> ve; ve.pb(a); ve.pb(b); for(int i = 1;i <= n;i++) if(i != a && i != b) ve.pb(i); int inv = publish(ve); swap(ve[0], ve[1]); int inv2 = publish(ve); return (inv < inv2); } void merge_sort(vector<int> &vals, int l, int r) { if(l == r) return; int mid = (l + r) / 2; merge_sort(vals, l, mid); merge_sort(vals, mid + 1, r); vector<int> tot; int it1 = l, it2 = mid + 1; while(it1 <= mid || it2 <= r) { if(it1 <= mid && it2 <= r) { if(cmp(vals[it1], vals[it2])) tot.pb(vals[it1++]); else tot.pb(vals[it2++]); } else if(it1 <= mid) tot.pb(vals[it1++]); else tot.pb(vals[it2++]); } for(int i = l;i <= r;i++) vals[i] = tot[i - l]; } void solve(int N) { n = N; vector<int> vals(n); iota(vals.begin(), vals.end(), 1); merge_sort(vals, 0, vals.size() - 1); answer(vals); }
#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...