Submission #1140150

#TimeUsernameProblemLanguageResultExecution timeMemory
1140150grizoArranging Shoes (IOI19_shoes)C++20
10 / 100
0 ms328 KiB
#include <bits/stdc++.h> #include "shoes.h" using namespace std; using ll = long long; #define debug(v) \ cerr << "Line(" << __LINE__ << ") -> " << #v << " = " ; #define dbx(x) debug(x); cerr << x << "\n"; #define dbg(x) debug(x); cerr << "{ "; for(auto &e : x) cerr << e << ", "; cerr << "} \n"; #define log(x) (31^__builtin_clz(x)) const int N = 1e6+10, MOD = 1e9+7; ll count_swaps(vector<int> S){ int n = (int)S.size(); vector<int> a = S; set<pair<int,int>> l, r, all; for(int i = 0 ; i < n ; i ++){ if(a[i] < 0)l.insert({a[i], i}); else r.insert({a[i], i}); } ll ans = 0; for(int i = 0 ; i < n ; i ++){ if(all.find(make_pair(a[i], i)) != all.end())continue; if(a[i] < 0){ auto it = r.lower_bound(make_pair(-a[i], 0)); ans += it->second - i - 1; all.insert({a[i], i}); all.insert({-a[i], it->second}); l.erase(make_pair(a[i], i)); r.erase(it); }else { auto it = l.lower_bound(make_pair(-a[i], 0)); ans += it->second - i; all.insert({a[i], i}); all.insert({-a[i], it->second}); l.erase(it); r.erase(make_pair(a[i], i)); } } 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...