Submission #31167

#TimeUsernameProblemLanguageResultExecution timeMemory
31167cscandkswon곤돌라 (IOI14_gondola)C++14
35 / 100
23 ms4560 KiB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100000;

int init[MAXN];

void settinginit(int n, int seq[]){
	int i, x=-1;
	for(i=0; i<n; i++)if(seq[i]<=n){
		x=(i-seq[i]+1+n)%n;
		break;
	}
	if(x==-1) x=0;
	for(i=0; i<n; i++, x=(x+1)%n) init[x]=i+1;
}

int valid(int n, int inputSeq[]){
    int i;
	settinginit(n, inputSeq);
	sort(inputSeq, inputSeq+n);
    for(i=1; i<n; i++) if(inputSeq[i-1]==inputSeq[i]) return 0;
    return 1;
}

pair<int, int> rep[MAXN];

int replacement(int n, int gondolaSeq[], int replacementSeq[]){
	int i, length=0, change=0, last=n+1;
	settinginit(n, gondolaSeq);
	for(i=0; i<n; i++) if(gondolaSeq[i]!=init[i])
		rep[change].first=gondolaSeq[i], rep[change++].second=i;
	sort(rep, rep+change);
	for(i=0; i<change; i++){	
		replacementSeq[length++]=init[rep[i].second];
		for(; last<rep[i].first; last++) replacementSeq[length++]=last;
		last=rep[i].first+1;
	}
	return length;
}

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
#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...