Submission #417714

#TimeUsernameProblemLanguageResultExecution timeMemory
417714vanic곤돌라 (IOI14_gondola)C++14
10 / 100
13 ms1484 KiB
#include "gondola.h"
#include <cmath>
#include <algorithm>
#include <vector>

using namespace std;

typedef long long ll;

const int maxn=1e5+5, mod=1e9+7, Log=30;

inline int sum(int a, int b){
	if(a+b>=mod){
		return a+b-mod;
	}
	if(a+b<0){
		return a+b+mod;
	}
	return a+b;
}

inline int mul(int a, int b){
	return (ll)a*b%mod;
}

inline int pot(int a, int b){
	int sol=1;
	for(int i=0; i<Log; i++){
		if((1<<i)&b){
			sol=mul(sol, a);
		}
		a=mul(a, a);
	}
	return sol;
}

int poc[maxn];

int valid(int n, int l[]){
	for(int i=0; i<n; i++){
		poc[i]=i+1;
	}
	int pos=-1;
	for(int i=0; i<n; i++){
		if(l[i]<=n){
			pos=i;
			break;
		}
	}
	int val=l[pos];
	for(int i=0; i<n; i++){
		poc[pos]=val;
		val=(val+1)%n;
		pos=(pos+1)%n;
		if(!val){
			val=n;
		}
	}
	for(int i=0; i<n; i++){
		if(l[i]<=n && poc[i]!=l[i]){
			return 0;
		}
	}
	return 1;
}


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

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

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...