#include<bits/stdc++.h>
using namespace std;
#include "shoes.h"
long long count_swaps(std::vector<int> s) {
long long ans=0;
map<int , queue<int>> q;
int n=s.size();
for(int i=0; i<n; i++)
{
q[s[i]].push(i);
}
int c=-1;
for(int i=0; i<n; i++)
{
if(i%2==0)
{
if(s[i]<0)
{
c=s[i];
q[s[i]].pop();
continue;
}
else
{
ans+=(q[-s[i]].front()-i);
i++;
q[-s[i]].pop();
}
}
else
{
ans+=(q[-c].front()-i);
q[-c].pop();
}
}
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("%lld\n", result);
// fclose(stdout);
// return 0;
//}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |