Submission #1242749

#TimeUsernameProblemLanguageResultExecution timeMemory
1242749haithamcoderArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB

long long count_swaps(std::vector<int> s) {
	ll n = s.size()/2;

	vector<ll> a(n);
	for (ll i = 0; i < n; i++) {
		a[i] = i + 1;
	}

	ll p = 1;
	vector<ll> pl(2 * n + 1);
	map<ll, ll> trans;
	for (ll i = 0; i < 2 * n; i++) {
		if (s[i] > 0) {
			pl[i + 1] = p;
			trans[s[i]] = p;
			p++; 
		}
	}

	for (ll i = 0; i < 2 * n; i++) {
		if (s[i] < 0) {
			pl[i + 1] = -trans[-s[i]];
		}
	}

	map<ll, ll> wer;
	for (ll i = 1; i <= 2 * n; i++) {
		wer[pl[i]] = i;
	}
	// pr(pl);

	ll ans = 1e7;
	ll c = 0;
	for (ll i = 0; i < n; i++) {
		ll arrive = a[i] * 2;
		c += abs(wer[i + 1] - (arrive)) + abs(wer[-(i + 1)] - (arrive - 1));

		// db(abs(wer[num] - (2 * a[i] - 1))); db(abs(wer[-num] - (2 * a[i])));

		if (wer[-(i + 1)] > wer[i + 1]) {c--;}
		if (wer[i + 1] > arrive) {c--;}
		if (wer[-(i + 1)] > arrive) {c--;}
	}

	ans = min(ans, c);

	while (next_permutation(a.begin(), a.end())) {
		ll cur = 0;
		for (ll i = 0; i < n; i++) {
			ll arrive = a[i] * 2;
			cur += abs(wer[i + 1] - (arrive)) + abs(wer[-(i + 1)] - (arrive - 1));

			// db(abs(wer[num] - (2 * a[i] - 1))); db(abs(wer[-num] - (2 * a[i])));

			if (wer[-(i + 1)] < wer[i + 1]) {cur--;}
			if (wer[i + 1] > arrive) {cur--;}
			if (wer[-(i + 1)] > arrive) {cur--;}
		}

		ans = min(ans, cur);
	}
	return ans;
}

Compilation message (stderr)

shoes.cpp:2:28: error: 'vector' is not a member of 'std'
    2 | long long count_swaps(std::vector<int> s) {
      |                            ^~~~~~
shoes.cpp:1:1: note: 'std::vector' is defined in header '<vector>'; did you forget to '#include <vector>'?
  +++ |+#include <vector>
    1 | 
shoes.cpp:2:35: error: expected primary-expression before 'int'
    2 | long long count_swaps(std::vector<int> s) {
      |                                   ^~~