답안 #763869

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
763869 2023-06-23T01:36:51 Z SanguineChameleon 곤돌라 (IOI14_gondola) C++17
55 / 100
25 ms 4956 KB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;

int valid(int n, int inputSeq[]) {
	set<int> s;
	for (int i = 0; i < n; i++) {
		s.insert(inputSeq[i]);
	}
	if ((int)s.size() != n) {
		return 0;
	}
	int off = -1;
	for (int i = 0; i < n; i++) {
		if (inputSeq[i] <= n) {
			off = (i + n - inputSeq[i] + 1) % n;
			break;
		}
	}
	if (off != -1) {
		for (int i = 0; i < n; i++) {
			if (inputSeq[(i + off) % n] <= n && inputSeq[(i + off) % n] != i + 1) {
				return 0;
			}
		}
	}
	return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[]) {
	int off = 0;
	for (int i = 0; i < n; i++) {
		if (gondolaSeq[i] <= n) {
			off = (i + n - gondolaSeq[i] + 1) % n;
			break;
		}
	}
	vector<pair<int, int>> last;
	for (int i = 0; i < n; i++) {
		if (gondolaSeq[(i + off) % n] != i + 1) {
			last.emplace_back(gondolaSeq[(i + off) % n], i + 1);
		}
	}
	if (last.empty()) {
		return 0;
	}
	sort(last.begin(), last.end());
	int sz = last.size();
	int prv = last.back().second;
	for (int i = 0; i < sz; i++) {
		for (int j = (i > 0 ? last[i - 1].first + 1 : n + 1); j < last[i].first; j++) {
			replacementSeq[j - n - 1] = prv;
			prv = j;
		}
		replacementSeq[last[i].first - n - 1] = (i < sz - 1 ? last[i].second : prv);
	}
	return last[sz - 1].first - n;
}

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

int countReplacement(int n, int inputSeq[]) {
	return -3;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 308 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 304 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 9 ms 2260 KB Output is correct
7 Correct 20 ms 3912 KB Output is correct
8 Correct 15 ms 4116 KB Output is correct
9 Correct 5 ms 1492 KB Output is correct
10 Correct 19 ms 4868 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 304 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 9 ms 2348 KB Output is correct
7 Correct 20 ms 3920 KB Output is correct
8 Correct 15 ms 4240 KB Output is correct
9 Correct 5 ms 1492 KB Output is correct
10 Correct 19 ms 4756 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 10 ms 2132 KB Output is correct
14 Correct 1 ms 212 KB Output is correct
15 Correct 25 ms 4956 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 308 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 304 KB Output is correct
2 Correct 1 ms 308 KB Output is correct
3 Correct 1 ms 308 KB Output is correct
4 Correct 1 ms 308 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 304 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 304 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 308 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 6 ms 980 KB Output is correct
12 Correct 7 ms 1128 KB Output is correct
13 Correct 10 ms 1440 KB Output is correct
14 Correct 6 ms 1012 KB Output is correct
15 Correct 16 ms 2292 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -