제출 #297936

#제출 시각아이디문제언어결과실행 시간메모리
297936mieszko11b곤돌라 (IOI14_gondola)C++14
55 / 100
52 ms6136 KiB
#include "gondola.h"
#include <bits/stdc++.h>

using namespace std;

using ii = pair<int, int>;

#define X first
#define Y second

vector<int> S;

int valid(int n, int inputSeq[]) {
	vector<int> S(n);
	for(int i = 0 ; i < n ; i++)
		S[i] = inputSeq[i];
		
	set<int> hlp;
	for(int x : S) {
		if(hlp.count(x))
			return 0;
		hlp.insert(x);
	}
	
	for(int i = 0 ; i < n ; i++) {
		if(S[i] <= n) {
			rotate(S.begin(), S.begin() + (i - S[i] + 1 + n) % n, S.end());
			break;
		}
	}
	
	for(int i = 0 ; i < n ; i++)
		if(S[i] <= n && S[i] != i + 1)
			return 0;
			
	::S = S;
	return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[]) {
	valid(n, gondolaSeq);
	vector<int> res;
	
	vector<ii> V;
	for(int i = 0 ; i < n ; i++)
		if(S[i] > n)
			V.emplace_back(S[i], i + 1);
	
	sort(V.begin(), V.end());
	int nxt = n + 1;
	for(auto p : V) {
		res.push_back(p.Y);
		nxt++;
		for( ; nxt <= p.X ; nxt++)
			res.push_back(nxt - 1);
	}
	
	for(int i = 0 ; i < res.size() ; i++)
		replacementSeq[i] = res[i];
	return res.size();
}

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

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

컴파일 시 표준 에러 (stderr) 메시지

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