Submission #1019504

#TimeUsernameProblemLanguageResultExecution timeMemory
1019504pccGondola (IOI14_gondola)C++17
55 / 100
31 ms4700 KiB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;

#define pii pair<int,int>
#define fs first
#define sc second

int valid(int n, int arr[]){
	int cen = -1;
	set<int> st;
	for(int i = 0;i<n;i++){
		if(arr[i]<=n)cen = i;
		if(st.find(arr[i]) != st.end())return false;
		st.insert(arr[i]);
	}
	if(cen == -1)return true;
	int c = arr[cen];
	while(cen<n){
		if(arr[cen] != c&&arr[cen]<=n)return false;
		c++;
		if(c>n)c -= n;
		cen++;
	}
	cen = 0;
	while(cen<n){
		if(arr[cen] != c&&arr[cen]<=n)return false;
		c++;
		if(c>n)c -= n;
		cen++;
	}
	return true;
}

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

int replacement(int n, int arr[], int ans[]){
	vector<pii> v;
	int ori = 0;
	for(int i = 0;i<n;i++){
		if(arr[i]>n)v.push_back(pii(arr[i],i));
		else ori = i;
	}
	if(ori != -1){
		int c = arr[ori];
		while(ori<n){
			arr[ori++] = c++;
			if(c>n)c -= n;
		}
		ori = 0;
		while(ori<n){
			arr[ori++] = c++;
			if(c>n)c -= n;
		}
	}
	sort(v.begin(),v.end());
	vector<int> re;
	int ptr = n;
	for(auto &i:v){
		while(ptr<i.fs){
			re.push_back(arr[i.sc]);
			arr[i.sc] = ++ptr;
		}
	}
	for(int i = 0;i<re.size();i++)ans[i] = re[i];
	return re.size();
}

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

int countReplacement(int n, int inputSeq[])
{
  return -3;
}

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:65:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   65 |  for(int i = 0;i<re.size();i++)ans[i] = re[i];
      |                ~^~~~~~~~~~
#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...