Submission #991593

#TimeUsernameProblemLanguageResultExecution timeMemory
991593coolboy19521Arranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms348 KiB
#include <bits/stdc++.h>
#include "shoes.h"

using namespace std;

long long count_swaps(std::vector<int> s) {
	map<int,queue<int>>cl;

	for (int i = 0; i < (int) s.size(); i ++) {
		cl[s[i]].push(i);
	}

	long long r = 0;
	vector <int> d;

	for (int i = 0; i < (int) s.size(); i ++) {
		auto it = find(begin(d), end(d), i);
		if (it != d.end()) continue;

		int ix = cl[-s[i]].front();
		int vs = i - (upper_bound(begin(d), end(d), i) - begin(d));
		int ve = ix - (upper_bound(begin(d), end(d), ix) - begin(d));

		r += (ve - vs);

		if (s[i] < 0) {
			r --;
		}

		cl[-s[i]].pop();
		cl[s[i]].pop();
		d.push_back(ix);
		d.push_back(i);
	}

	return r;
}
#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...