제출 #255941

#제출 시각아이디문제언어결과실행 시간메모리
255941b00n0rpArranging 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]);
}

int last[200005];
bool exis[200005];

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