Submission #1262939

#TimeUsernameProblemLanguageResultExecution timeMemory
1262939minggaBubble Sort 2 (JOI18_bubblesort2)C++20
38 / 100
9093 ms1472 KiB
// Author: caption_mingle #include "bits/stdc++.h" #include "bubblesort2.h" using namespace std; #define ln "\n" #define pb push_back #define fi first #define se second #define all(x) (x).begin(), (x).end() #define sz(x) ((int)(x).size()) #define ll long long const int mod = 1e9 + 7; const int inf = 2e9; struct BIT { vector<int> bit; int n; BIT(int n) : n(n) { bit.resize(n + 1, 0); } void update(int u, int v) { for(; u <= n; u += (u & -u)) bit[u] += v; } int get(int u) { int ans = 0; for(; u > 0; u -= (u & -u)) ans += bit[u]; return ans; } int get(int l, int r) { return get(r) - get(l - 1); } }; vector<int> countScans(vector<int> A, vector<int> X, vector<int> V) { int n = sz(A), q = sz(X); vector<int> ans; vector<int> val; for(int x : A) val.pb(x); for(int y : V) val.pb(y); sort(all(val)); val.erase(unique(all(val)), val.end()); for(int& x : A) { x = upper_bound(all(val), x) - val.begin(); } for(int& x : V) { x = upper_bound(all(val), x) - val.begin(); } int m = sz(val); for(int i = 0; i < q; i++) { BIT bit(m); A[X[i]] = V[i]; int cur = 0; for(int x : A) { cur = max(cur, bit.get(x + 1, m)); bit.update(x, 1); } ans.pb(cur); } return ans; } // int main() { // int n, q; cin >> n >> q; // vector<int> A, X, V; // for(int i = 1; i <= n; i++) { // int x; cin >> x; // A.pb(x); // } // for(int i = 1; i <= q; i++) { // int x, v; cin >> x >> v; // X.pb(x); // V.pb(v); // } // vector<int> ans = countScans(A, X, V); // for(int x : ans) { // cout << x << ln; // } // }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...