Submission #382692

#TimeUsernameProblemLanguageResultExecution timeMemory
382692TrunktyGondola (IOI14_gondola)C++14
20 / 100
13 ms1260 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include "gondola.h"
using namespace std;
 
int valid(int n, int inputSeq[]){
	bool check[250005];
	for(int i=1;i<250005;i++){
		check[i] = false;
	}
	for(int i=0;i<n;i++){
		if(check[inputSeq[i]]){
			return 0;
		}
		check[inputSeq[i]] = true;
	}
	int ind=0;
	for(int i=0;i<n;i++){
		if(inputSeq[i]<=n){
			ind = i-(inputSeq[i]-1);
			if(ind<0){
				ind += n;
			}
			break;
		}
	}
	int now = 1;
	for(int i=ind;i<n;i++){
		if(inputSeq[i]<=n){
			if(inputSeq[i]!=now){
				return 0;
			}
		}
		now++;
	}
	for(int i=0;i<ind;i++){
		if(inputSeq[i]<=n){
			if(inputSeq[i]!=now){
				return 0;
			}
		}
		now++;
	}
	return 1;
}
 
int replacement(int n, int gondolaSeq[], int replacementSeq[]){
	int ind=0;
	for(int i=0;i<n;i++){
		if(gondolaSeq[i]<=n){
			ind = i-(gondolaSeq[i]-1);
			if(ind<0){
				ind += n;
			}
			break;
		}
	}
	int have[250005],maxi=-1,pos=0;
	for(int i=1;i<250005;i++){
		have[i] = -1;
	}
	for(int i=0;i<n;i++){
		have[gondolaSeq[i]] = ((i-ind+n)%n)+1;
		if(gondolaSeq[i]>maxi){
			maxi = gondolaSeq[i];
			pos = ((i-ind+n)%n)+1;
		}
	}
	for(int i=n+1;i<maxi;i++){
		if(have[i]==-1){
			replacementSeq[i-n-1] = pos;
			pos = i;
		}
		else{
			replacementSeq[i-n-1] = have[i];
		}
	}
	replacementSeq[maxi] = pos;
	return maxi-n;
}
int countReplacement(int n, int inputSeq[]){
	vector<int> avail={};
	
	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...