Submission #52979

#TimeUsernameProblemLanguageResultExecution timeMemory
52979zetapi곤돌라 (IOI14_gondola)C++14
25 / 100
22 ms1660 KiB
#include "gondola.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long
#define pb push_back
#define mp make_pair
#define itr ::iterator

const int MAX=1e5;

int arr[MAX],fre[MAX];

int valid(int n,int inputSeq[])
{
  int N=n,ok=1;
  for(int A=0;A<N;A++)
  {
	  fre[inputSeq[A]]++;
	  if(fre[inputSeq[A]]>1)
	  	return 0;
  }
  for(int A=0;A<N;A++)
  {
  	  if(inputSeq[A]<=N)
  	  {
		 ok=0;
		 inputSeq[A]--;
		 for(int B=A;B>=0;B--)
		 {
		 	arr[B]=inputSeq[A];
		 	inputSeq[A]--;
		 	if(inputSeq[A]<0)
		 		inputSeq[A]+=N;
		 }
		 inputSeq[A]=arr[A];
		 for(int B=A+1;B<N;B++)
		 {
		 	inputSeq[A]++;
		 	if(inputSeq[A]>=N)
		 		inputSeq[A]=0;
		 	arr[B]=inputSeq[A];
		 }
		 inputSeq[A]=arr[A]+1;
		 break;
	  }
  }
  if(ok)
  	 return 1;
  for(int A=0;A<N;A++)
  	 arr[A]++;
 // for(int A=0;A<N;A++)
  ///	 cout<<arr[A]<<" ";
  for(int A=0;A<N;A++)
  {
  	 // cout<<arr[A]<<" "<<inputSeq[A]<<"\n";
  	  if(inputSeq[A]<=N and arr[A]!=inputSeq[A])
  	  	return 0;	
  }
  	return 1;
}

//----------------------

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
   	return -2;
}

//----------------------

int countReplacement(int n, int inputSeq[])
{
	if(!valid(n,inputSeq))
		return 0;
	int cnt=0;
	vector<int> vec;
	for(int A=0;A<n;A++)
		vec.pb(inputSeq[A]);
	sort(vec.begin(),vec.end());
	for(int A=0;A<vec.size();A++)
		if(vec[A]==vec[A-1])
			return 0;	
	for(int A=0;A<vec.size();A++)
		if(vec[A]>n)
			cnt++;
	if(cnt==0 or cnt==1 or cnt==3)
		return 1;
	for(int A=0;A<n;A++)
	{
		if(inputSeq[A]<=n)
			continue;
		for(int B=A+1;B<n;B++)
		{
			if(inputSeq[B]<=n)
				continue;
			else if(inputSeq[A]<inputSeq[B] or vec.back()-n<3)
				return 1;
			else
			return 2;
		}
	}
  	return 2;
}

/*int main()
{
	int n,inputSeq[]={1,2,6,7};
	cout<<countReplacement(4,inputSeq);
	return 0;
}*/

Compilation message (stderr)

gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:81:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int A=0;A<vec.size();A++)
              ~^~~~~~~~~~~
gondola.cpp:84:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int A=0;A<vec.size();A++)
              ~^~~~~~~~~~~
#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...