Submission #574333

#TimeUsernameProblemLanguageResultExecution timeMemory
574333Trisanu_DasArranging Shoes (IOI19_shoes)C++17
0 / 100
1103 ms269528 KiB
#include "shoes.h" #include <bits/stdc++.h> using namespace std; #define ll long long int const int N = 2e5 + 5; int n, fenwick[N]; queue<int> vall[N], valr[N]; // keep track of left and right shoe void upd(int i, int val){ for(int j = i; j <= n; j += j & (-j)) fenwick[j] += val; } int get(int i){ int val = 0; for(int j = i; j <= n; j = j & (-j)) val += fenwick[i]; return val; } ll count_swaps(vector<int> s){ n = s.size(); int ans = 0; for(int i = 1; i <= n; i++){ int temp = s[i - 1]; if(temp < 0){ temp *= -1; if(valr[temp].size()){ int other = valr[temp].front(); valr[temp].pop(); ans += get(i) - get(other - 1); upd(other, 1); }else{ vall[temp].push(i); upd(i,+1); } }else{ if(vall[temp].size()){ int other = vall[temp].front(); vall[temp].pop(); ans += get(i) - get(other); upd(other, 1); }else{ vall[temp].push(i); upd(i,+1); } } } return ans; }
#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...