Submission #1188898

#TimeUsernameProblemLanguageResultExecution timeMemory
1188898lizaArt Collections (BOI22_art)C++20
35 / 100
91 ms420 KiB
#include "art.h" #include <bits/stdc++.h> using namespace std; vector<int> order; int r1; int n; bool cmp(int a, int b) { vector<int> ve; ve.push_back(a); ve.push_back(b); for(int i = 1; i <= n; i++) { if(i!=a && i!= b) ve.push_back(i); } int x = publish(ve); swap(ve[0], ve[1]); int y = publish(ve); return x < y; } void _merge(int l, int m, int r) { int n1 = m-l+1; int n2 = r-m; vector<int> L(n1), R(n2); for(int i = 0; i < n1; i++) L[i] = order[l+i]; for(int i = 0; i < n2; i++) R[i] = order[m+1+i]; int i = 0, j = 0; int k = l; while(i < n1 && j < n2) { if(cmp(L[i], R[j])) { order[k] = L[i]; i++; } else { order[k]=R[j]; j++; } k++; } while(i < n1) { order[k] = L[i]; i++; k++; } while(j < n2) { order[k] = R[j]; j++; k++; } } void ms(int l, int r) { if(l >= r) return; int m = l+(r-l)/2; ms(l, m); ms(m+1, r); _merge(l, m, r); } void solve(int N) { for (int i = 1; i <= N; i++) { order.push_back(i); } n= N; ms(0, N-1); answer(order); } //publish //answer
#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...