Submission #255931

#TimeUsernameProblemLanguageResultExecution timeMemory
255931b00n0rpArranging Shoes (IOI19_shoes)C++17
10 / 100
1 ms384 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define vi vector<int>
#define pb push_back
#define REP(i,n) for(int i = 0; i < n; i++)
#define FOR(i,a,b) for(int i = a; i < b; i++)

int n;
vi a;

ll ans = 0;

bool paired(int ind){
	if(ind >= 2*n-1 or ind < 0) return 0;
	return (a[ind]+a[ind+1] == 0 and a[ind] < a[ind+1]);
}

ll count_swaps(vector<int> s) {
	n = s.size()/2;
	a = s;
	REP(i,n){
		int j = 0;
		while(j < 2*n-1){
			// cout << j << " " << ans << endl;
			if(paired(j-1) or paired(j)) j += 2;
			else if(paired(j+1)){
				ans += 2;
				if(a[j] == j+1) ans--;
				if(a[j] == j+2) ans--;
				swap(a[j],a[j+1]);
				swap(a[j+1],a[j+2]);
				j += 2;
			}
			else{
				if(a[j] != a[j+1]) ans++;
				swap(a[j],a[j+1]);
				j++;
			}
		}
	}
	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...