제출 #1300195

#제출 시각아이디문제언어결과실행 시간메모리
1300195orgiloogii곤돌라 (IOI14_gondola)C++20
10 / 100
6 ms1340 KiB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;
int valid(int n, int g[]) {
	int idx = -1;
//	map <int, bool> vis;
	bool vis[n + 1] = {0};
	for (int i = 0;i < n;i++) {
		if (vis[g[i]] == true) return 0;
		vis[g[i]] = true;
		if (g[i] <= n && idx == -1) {
			idx = i;
		}
	}
	if (idx == -1) return 1;
	int cnt = g[idx];
//	cout << idx << " " << cnt << endl;
	for (int i = idx + 1;;i++) {
		i %= n;
		if (i == idx) break;
		cnt %= n;
		cnt++;
//		cout << i << " " << cnt << endl;
		if (g[i] <= n && g[i] != cnt) return 0;
	}
	return 1;
}

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

int replacement(int n, int g[], int r[]) {
	int idx = -1;
	map <int, bool> vis;
	int mx = 0;
	for (int i = 0;i < n;i++) {
		if (vis[g[i]] == true) return 0;
		vis[g[i]] = true;
		if (g[i] <= n && idx == -1) {
			idx = i;
		}
		mx = max(mx, g[i]);
	}
	if (idx == -1) {
		return 0;
	}
	int cnt = g[idx];
	int base[n] = {0};
	base[idx] = cnt;
	for (int i = idx + 1;;i++) {
		i %= n;
		if (i == idx) break;
		cnt %= n;
		cnt++;
		base[i] = cnt;
	}
	int sz = 0;
	vector <array <int, 2>> v;
	for (int i = 0;i < n;i++) {
		if (base[i] != g[i]) {
			v.push_back({g[i], base[i]});
		}
	}
	
	sort(v.begin(), v.end());
	for (auto z : v) {
		r[sz] = z[1];
		sz++;
		while (n + sz < z[0]) {
			r[sz] = n + sz;
			sz++;
		}
	}
	
//	for (int i = 0;i < mx - n;i++) {
//		cout << r[i] << " ";
//	}
//	cout << endl;
	return 1;
}


int countReplacement(int n, int g[]) {
  return -3;
}
//int main() {
//	int arr[5] = {6, 2, 7, 8, 9};
//	int brr[10] = {};
//	cout << replacement(5, arr, arr) << endl;
//}
#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...