14672022-10-24 19:18:41lacitoKazamatacpp11Hibás válasz 0/4039ms5008 KiB
#include <bits/stdc++.h>
using namespace std;

/*
meddig jutunk el?
+++++++++------------

milyen kulcsok vannak meg?
+++++--++-++++-+++---


+++---+++++++---++--


*/

int main() {
	int n;
	cin >> n;
	vector<bool> megvan(n);
	vector<int> szoba(n);
	for (int i = 0; i < n; i++) {
		cin >> szoba[i];
	}
	/*int hany = 0;
	bool kesz = false;
	while(!kesz) {
		hany++;
		kesz = true;
		for (int i = 0; i < n; i++) {
			megvan[szoba[i]] = true;
			if (!megvan[i]) {
				kesz = false;
				break;
			}
		}
		for (int i = 0; i < n; i++) {
			szoba[i]++;
			szoba[i] %= n;
		}
	}
	cout << hany - 1;*/
	int ujra = 0;
	int x = 0;
	vector<int> kulcs;
	while(x < n) {
		vector<int> ideig;
		if (ujra == 0) {
			kulcs.push_back(szoba[0]);
			megvan[szoba[0]] = true;
			if (szoba[0] == 0) {
				while(x < n && megvan[x]) {
					x++;
					if (!megvan[szoba[x]]) kulcs.push_back(szoba[x]);
					megvan[szoba[x]] = true;
				}
			}
		}
		else {
			for (int i = 0; i < kulcs.size(); i++) {
				int k = (kulcs[i]+1)%n;
				if (!megvan[k]) {
					ideig.push_back(k);
					megvan[k] = true;
				}
			}
			kulcs = ideig;
			while(x < n && megvan[x]) {
				x++;
				if (!megvan[szoba[x]]) kulcs.push_back(szoba[x]);
				megvan[szoba[x]] = true;
			}
		}
		ujra++;

	}
	cout << ujra-1;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Hibás válasz0/03ms1680 KiB
2Hibás válasz0/019ms2240 KiB
3Hibás válasz0/22ms2140 KiB
4Hibás válasz0/22ms2340 KiB
5Hibás válasz0/22ms2456 KiB
6Hibás válasz0/22ms2664 KiB
7Hibás válasz0/22ms2912 KiB
8Hibás válasz0/22ms3072 KiB
9Hibás válasz0/22ms3280 KiB
10Hibás válasz0/22ms3628 KiB
11Hibás válasz0/237ms4332 KiB
12Hibás válasz0/237ms4456 KiB
13Hibás válasz0/237ms4536 KiB
14Hibás válasz0/239ms4660 KiB
15Hibás válasz0/237ms4720 KiB
16Hibás válasz0/239ms4736 KiB
17Hibás válasz0/239ms4652 KiB
18Hibás válasz0/239ms4748 KiB
19Hibás válasz0/235ms4652 KiB
20Hibás válasz0/235ms4736 KiB
21Hibás válasz0/239ms4736 KiB
22Hibás válasz0/235ms5008 KiB