답안 #236952

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
236952 2020-06-04T06:02:09 Z crossing0ver 곤돌라 (IOI14_gondola) C++17
25 / 100
33 ms 5248 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(10000000);
	for (int i = 0; i < v.size(); i++)
		good [v[i]] = 1;
	if (v.size() == 0) return 0;
	int mx = v.back() + 1;
	  for (int i = 0;i < g.size(); i++) {
		while (!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:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int i = 0;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;
      ^~~~
gondola.cpp:58:6: warning: unused variable 'mx' [-Wunused-variable]
  int mx = v.back() + 1;
      ^~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 304 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 4 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 5 ms 384 KB Output is correct
4 Correct 5 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 16 ms 2560 KB Output is correct
7 Correct 18 ms 1408 KB Output is correct
8 Correct 28 ms 4600 KB Output is correct
9 Correct 11 ms 1664 KB Output is correct
10 Correct 32 ms 5240 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 16 ms 2560 KB Output is correct
7 Correct 18 ms 1408 KB Output is correct
8 Correct 30 ms 4608 KB Output is correct
9 Correct 11 ms 1664 KB Output is correct
10 Correct 33 ms 5248 KB Output is correct
11 Correct 5 ms 384 KB Output is correct
12 Correct 5 ms 384 KB Output is correct
13 Correct 11 ms 768 KB Output is correct
14 Correct 4 ms 384 KB Output is correct
15 Correct 19 ms 1408 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1536 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1536 KB Output is correct
4 Correct 6 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
6 Correct 5 ms 1536 KB Output is correct
7 Incorrect 5 ms 1664 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1536 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
6 Correct 5 ms 1536 KB Output is correct
7 Incorrect 6 ms 1664 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 256 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -