Submission #399816

#TimeUsernameProblemLanguageResultExecution timeMemory
399816JasiekstrzGondola (IOI14_gondola)C++17
55 / 100
47 ms4544 KiB
#include "gondola.h"
#include<bits/stdc++.h>
#define fi first
#define se second
using namespace std;
void rot(int n,int inputSeq[])
{
	int gmn=0;
	for(int i=0;i<n;i++)
	{
		if(inputSeq[i]<inputSeq[gmn])
			gmn=i;
	}
	rotate(inputSeq,inputSeq+gmn,inputSeq+n);
	return;
}
int valid(int n,int inputSeq[])
{
	set<int> vis;
	for(int i=0;i<n;i++)
	{
		if(vis.find(inputSeq[i])!=vis.end())
			return 0;
		vis.insert(inputSeq[i]);
	}
	rot(n,inputSeq);
	for(int i=0;i<n;i++)
	{
		if(inputSeq[i]<=n && inputSeq[i]!=inputSeq[0]+i)
			return 0;
	}
	return 1;
}
bool comp_se(pair<int,int> a,pair<int,int> b)
{
	if(a.se==b.se)
		return a.fi<b.fi;
	return a.se<b.se;
}
int replacement(int n,int gondolaSeq[],int replacementSeq[])
{
	int l=0;
	vector<pair<int,int>> ch;
	rot(n,gondolaSeq);
	for(int i=0;i<n;i++)
	{
		if(gondolaSeq[i]>n)
			ch.emplace_back((gondolaSeq[0]+i-1)%n+1,gondolaSeq[i]);
	}
	sort(ch.begin(),ch.end(),comp_se);
	int nxt=n+1;
	for(auto v:ch)
	{
		replacementSeq[l++]=v.fi;
		while(nxt<v.se)
			replacementSeq[l++]=nxt++;
		nxt++;
	}
	return l;
}
int countReplacement(int n,int inputSeq[])
{
	return 0;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...