Submission #236949

# Submission time Handle Problem Language Result Execution time Memory
236949 2020-06-04T05:55:22 Z crossing0ver Gondola (IOI14_gondola) C++17
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
//#include "gondola.h"
using namespace std;
const int MAXN = 1E5+5;
int n,a[MAXN];
int valid(int n1, int inputSeq[]) {
	n = n1;
	int pos = -1;
	for (int i = 0; i < n; i++) {
		a[i] = inputSeq[i];
		if (a[i] <= n) 
			pos = i;
	}
	if (pos != -1) {
		int x = (a[pos] - pos - 1)%n;
		if (x <0) x+= n;	
		int b[MAXN];
		for (int i = 0; i < n; i++) {
			b[(x + i)%n] = a[i];
		}
		for (int i = 0;i < n; i++)
			a[i] = b[i];
	}
	set<int> s;
	for (int i = 0; i < n; i++) {
		if (a[i] < n) {
			if (a[i] != i + 1) return 0;
		}
		s.insert(a[i]);
	}
	if (s.size() != n) return 0;
	return 1;
}
int replacement(int n1, int gondolaSeq[], int replacementSeq[]){
	bool c = valid(n1,gondolaSeq);
	vector<int> v;
	for (int i = 0; i < n ;i++) {
		if (a[i] > n) {
			v.push_back(a[i]);
		}
	}
	sort (v.begin(),v.end());
	int last = n;
	vector<int> b(n+1);
	vector<int> g;
	for (int i = 0; i < n; i++)
		if (a[i] <= n) b[a[i]] = 1;
		
	for (int i = 1; i <= n; i++) {
		if (!b[i]) g.push_back(i);
	}
	int cnt = 0;
	int val = n+1;
	vector<bool> good(1e6);
	for (int i = 0; i < v.size(); i++)
		good [v[i]] = 1;
	if (v.size() == 0) return 0;
	int mx = v.back() + 1;
	while (val <= mx)   for (int i = 0;  val <= mx && i < g.size(); i++) {
		if (!good[ g[i] ]) {
		replacementSeq[cnt] = g[i];
		g[i] = val;
		val++;	
		cnt++;
	}
	}
	return cnt;	
}
int countReplacement(int n, int inputSeq[]) { return 0;}
/* 
main() {
	int n;
	cin >> n;
	int inputseq[n];
	int s[100000];
	for (int i = 0;i  < n; i++)
		cin >> inputseq[i];
	cout << replacement(n,inputseq,s);
} */      

Compilation message

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:31:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  if (s.size() != n) return 0;
      ~~~~~~~~~^~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:55:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < v.size(); i++)
                  ~~^~~~~~~~~~
gondola.cpp:59:54: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while (val <= mx)   for (int i = 0;  val <= mx && i < g.size(); i++) {
                                                    ~~^~~~~~~~~~
gondola.cpp:35:7: warning: unused variable 'c' [-Wunused-variable]
  bool c = valid(n1,gondolaSeq);
       ^
gondola.cpp:43:6: warning: unused variable 'last' [-Wunused-variable]
  int last = n;
      ^~~~
/tmp/cc2JQmHW.o: In function `main':
grader.cpp:(.text.startup+0xc3): undefined reference to `countReplacement'
grader.cpp:(.text.startup+0xe2): undefined reference to `valid'
grader.cpp:(.text.startup+0x106): undefined reference to `replacement'
collect2: error: ld returned 1 exit status