Submission #1298651

#TimeUsernameProblemLanguageResultExecution timeMemory
1298651adiatArranging Shoes (IOI19_shoes)C++20
10 / 100
1 ms348 KiB
#include<bits/stdc++.h> using namespace std; #include "shoes.h" #define ll long long long long count_swaps(std::vector<int> v) { ll ans =0; map<int,deque<int>> tag,rtag; multiset<int> s; for(int i=0; i<v.size(); i++) { tag[v[i]].push_back(i); s.insert(i); } while(!s.empty()) { // cout<<s.size(); auto x=s.begin(); if(v[*x]<0 ) { auto y=s.find(tag[-v[*x]][0]); tag[-v[*x]].pop_front(); tag[v[*x]].pop_front(); ans+=(*y-*x)-1; s.erase(x); s.erase(y); } else { auto y= s.find(tag[-v[*x]][0]); tag[-v[*x]].pop_front(); tag[v[*x]].pop_front(); ans+=(*y-*x); s.erase(x); s.erase(y); } } return ans; } //#include "shoes.h" // #include <cstdio> // #include <cassert> // using namespace std; // int main() { // int n; // assert(1 == scanf("%d", &n)); // vector<int> S(2 * n); // for (int i = 0; i < 2 * n; i++) // assert(1 == scanf("%d", &S[i])); // fclose(stdin); // long long result = count_swaps(S); // printf("\n%lld\n", result); // fclose(stdout); // return 0; // }
#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...