Submission #159762

#TimeUsernameProblemLanguageResultExecution timeMemory
159762maximath_1Gondola (IOI14_gondola)C++11
20 / 100
58 ms5240 KiB
#include "gondola.h"
#include<bits/stdc++.h>
using namespace std;

int valid(int n, int inputSeq[]){
	map<int, bool>mp;
	for(int i=0; i<n; i++){
		if(!mp[inputSeq[i]])
			mp[inputSeq[i]]=true;
		else return 0;
	}
	int fi=-1;
	for(int i=0; i<n; i++){
		if(inputSeq[i]<=n){
			if(fi==-1) fi=i;
			else{
				int check=i+inputSeq[fi]-fi;
				check%=n;
				if(check==0) check=n;
				if(check!=inputSeq[i]) return 0;
			}
		}
	}
	return 1;
}

int replacement(int n, int gondolaSeq[], int replacementSeq[]){
	int rotate=0;
	for(int i=0; i<n; i++){
		if(gondolaSeq[i]<=n) rotate=(gondolaSeq[i]-i+1)%n;
	}
	int initSeq[n]={};
	priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > >pq;
	for(int i=0; i<n; i++){
		initSeq[i]=gondolaSeq[(i-rotate)%n];
		if(initSeq[i]>n) pq.push({initSeq[i], i+1});
	}
	int idx=0, cnt=0;
	while(!pq.empty()){
		int replacementGondola=pq.top().first;
		int idxc=pq.top().second;
		pq.pop();
		replacementSeq[idx++]=idxc;
		for(int i=cnt; i<replacementGondola; i++){
			replacementSeq[idx++]=i;
		}
		cnt=replacementGondola+1;
	}
	return idx;
}

int countReplacement(int n, int inputSeq[]){

}

Compilation message (stderr)

gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:54:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^
#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...