Submission #94092

#TimeUsernameProblemLanguageResultExecution timeMemory
94092tincamateiBubble Sort 2 (JOI18_bubblesort2)C++14
0 / 100
6 ms1272 KiB
#include <bits/stdc++.h> #include "bubblesort2.h" using namespace std; const int MAX_N = 8000; vector<int> a; int maxpref[MAX_N], minsuff[MAX_N]; int badsegtree[MAX_N]; void update(int poz, int val, int n) { maxpref[0] = a[0]; for(int i = 1; i < n; ++i) maxpref[i] = max(maxpref[i - 1], a[i]); minsuff[n - 1] = a[n - 1]; for(int i = n - 2; i >= 0; --i) minsuff[i] = min(minsuff[i + 1], a[i]); for(int i = 0; i < poz; ++i) if(maxpref[i] > a[poz]) badsegtree[i] += val; for(int i = poz; i < n - 1; ++i) if(a[poz] > minsuff[i]) badsegtree[i] += val; } int getInv(int n) { int rez = 0; for(int i = 0; i < n; ++i) rez = max(rez, badsegtree[i]); return rez; } std::vector<int> countScans(std::vector<int> A,std::vector<int> X,std::vector<int> V){ int n, q; a = A; q = X.size(); std::vector<int> rez(q); n = A.size(); for(int i = 0; i < q; ++i) { update(X[i], -1, n); a[X[i]] = V[i]; update(X[i], 1, n); rez[i] = getInv(n); } return rez; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...