제출 #1355684

#제출 시각아이디문제언어결과실행 시간메모리
1355684scalifrastico_098Arranging Shoes (IOI19_shoes)C++20
85 / 100
1095 ms2116 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
long long count_swaps(vector<int> s) {
	ll n=s.size()/2, c=0; vector<char> vis(2*n, 0); bool p=0, p1=0;
	for(ll i=0; i<n; i++)
	{
		if(s[i]>0||abs(s[i])!=abs(s[i+n])||s[i]==s[i+n])p=1;
	}
	for(ll i=1; i<s.size(); i++)
	{
		if(abs(s[i])!=abs(s[i-1]))p1=1;
	}
	if(!p1)
	{
		ll uj=0, c1=0;
		for(ll i=0; i<2*n; i++)
		{
			if(s[i]<0){uj+=abs(i-(c1*2)); c1++;}
		} return uj;
	}
	else if(!p){ll y=((n-1)*(n))/2; return y;}
	else
	{
		for(ll i=0; i<2*n; i++)
		{
			if(vis[i])continue;
			for(ll j=i+1; j<2*n; j++)
			{
				if(vis[i])break; if(vis[j])continue;
				if(s[i]!=s[j]&&abs(s[i])==abs(s[j]))
				{
					c+=j-1-i; int uj=j; 
					for(ll v=j-1; v>=i+1; v--){swap(s[uj], s[v]); uj--;}
					if(s[i+1]<0){c++; swap(s[i+1], s[i]);}
					vis[i]=1; vis[uj]=1;
				}
			}
		}
		return c; 
	}
}
#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...