Submission #439933

#TimeUsernameProblemLanguageResultExecution timeMemory
439933Andrei1998Bubble Sort 2 (JOI18_bubblesort2)C++17
0 / 100
814 ms528 KiB
#include "bubblesort2.h" #include <bits/stdc++.h> using namespace std; int solve(const vector<int> &A) { const int N = A.size(); vector<int> stk = {0}; int best = 0; for (int i = 1; i < N; ++i) { if (A[i] > A[stk.back()]) { stk.push_back(i); } else if (A[i] < A[stk.back()]) { /*int st = 0, dr = (int)stk.size() - 2; while (st <= dr) { const int mid = (st + dr) / 2; if (A[i] < A[stk[mid]]) { dr = i - 1; } else { st = i + 1; } } best = max(best, i - stk[dr + 1]);*/ int j = stk.size() - 1; while (j > 0 && A[i] < A[stk[j - 1]]) { --j; } best = max(best, i - stk[j]); } } return best; } vector<int> countScans(vector<int> A, vector<int> X, vector<int> V) { int Q = X.size(); vector<int> answer(Q); for (int j = 0; j < Q; j++) { A[X[j]] = V[j]; answer[j] = solve(A); } return 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...