Submission #808813

#TimeUsernameProblemLanguageResultExecution timeMemory
808813OrazBArranging Shoes (IOI19_shoes)C++14
45 / 100
211 ms276224 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second const int N = 2e5+5; int vis[N]; deque<int> lft[N], rgt[N]; ll count_swaps(vector<int> S){ int n = S.size(); S.insert(S.begin(), -1); for (int i = 1; i <= n; i++){ if (S[i] > 0) rgt[S[i]].pb(i); else lft[-S[i]].pb(i); } ll ans = 0; set<int> s; for (int i = 1; i <= n; i++){ while(s.size() and (*s.begin()) < i) s.erase(s.begin()); if (vis[i]) continue; int j; if (S[i] > 0) j = lft[S[i]].front(); else j = rgt[-S[i]].front(); lft[abs(S[i])].pop_front(); rgt[abs(S[i])].pop_front(); ans += (j-i-s.size()-(S[i] < 0)); s.insert(j); vis[j] = 1; } return ans; } // int main () // { // ios::sync_with_stdio(false); // cin.tie(0); // int n; // cin >> n; // vector<int> S(2*n); // for (int i = 0; i < 2*n; i++) cin >> S[i]; // cout << count_swaps(S); // }
#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...