Submission #1355667

#TimeUsernameProblemLanguageResultExecution timeMemory
1355667scalifrastico_098Arranging Shoes (IOI19_shoes)C++20
0 / 100
0 ms344 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)p=1;
	}
	for(ll i=0; i<s.size()-1; i++)
	{
		if(abs(s[i])!=abs(s[i+1]))p1=1;
	}
	if(!p){ll y=((s.size()-1)*(s.size()))/2; return y;}
	if(!p1)
	{
		int uj=0;
		for(ll i=0; i<s.size(); i++)
		{
			if(s[i]<0){uj+=abs(i-(c*2)); c++;}
		} return uj;
	}
	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...