115302024-10-19 10:50:09DávidBob Baba Zárójelsorozatacpp17Hibás válasz 20/100598ms568 KiB
#include <bits/stdc++.h>
#include <utility>
#include <vector>
using namespace std;

int n;
vector<long long> prefix;

vector<pair<int, int>> szamolas(int b) {
	vector<pair<int, int>> eredmeny;
	pair<int, int> par = pair<int, int>(-1, -1);
	if(b >= n) par = pair<int, int>(0, 0);
	int j = b + 1;
	for(int i = b + 2; i <= n; i++) {
		while(prefix[j] - prefix[b] < prefix[i] - prefix[j]) {
			j++;
		}
		if(prefix[j] - prefix[b] == prefix[i] - prefix[j]) {
			par = pair<int, int>(j, i);
			eredmeny = szamolas(i);
		}
	}
	eredmeny.push_back(par);
	return eredmeny;
}

int main() {
	cin >> n;

	prefix.resize(n + 1);

	for(int i = 1; i <= n; i++) {
		cin >> prefix[i];
		prefix[i] += prefix[i - 1];
	}

	vector<pair<int, int>> eredmeny = szamolas(0);
	if(eredmeny[0].first == -1) {
		cout << -1 << endl;
		return 0;
	}
	reverse(eredmeny.begin(), eredmeny.end());

	int j = 0;
	for(long long i = 1; i <= prefix[n]; i++) {
		if(i <= prefix[eredmeny[j].first]) {
			cout << "(";
		} else if(i <= prefix[eredmeny[j].second]) {
			cout << ")";
		} else {
			j++;
			cout << "(";
		}
	}
	cout << endl;
	
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms508 KiB
2Elfogadva1ms320 KiB
3Elfogadva1ms508 KiB
subtask220/20
4Elfogadva1ms320 KiB
5Elfogadva1ms412 KiB
6Elfogadva1ms320 KiB
subtask30/30
7Hibás válasz1ms508 KiB
8Hibás válasz1ms320 KiB
9Hibás válasz1ms508 KiB
10Elfogadva1ms320 KiB
11Hibás válasz1ms320 KiB
subtask40/50
12Elfogadva1ms320 KiB
13Hibás válasz1ms508 KiB
14Hibás válasz1ms320 KiB
15Hibás válasz1ms408 KiB
16Elfogadva1ms320 KiB
17Elfogadva1ms320 KiB
18Elfogadva1ms412 KiB
19Hibás válasz1ms320 KiB
20Hibás válasz1ms320 KiB
21Hibás válasz1ms392 KiB
22Elfogadva1ms320 KiB
23Elfogadva1ms320 KiB
24Elfogadva1ms508 KiB
25Hibás válasz1ms408 KiB
26Hibás válasz1ms320 KiB
27Elfogadva1ms404 KiB
28Elfogadva1ms336 KiB
29Elfogadva1ms568 KiB
30Elfogadva1ms320 KiB
31Hibás válasz1ms396 KiB
32Hibás válasz1ms320 KiB
33Elfogadva1ms320 KiB
34Elfogadva1ms560 KiB
35Elfogadva1ms320 KiB
36Hibás válasz1ms408 KiB
37Hibás válasz1ms320 KiB
38Hibás válasz1ms320 KiB
39Hibás válasz1ms508 KiB
40Hibás válasz1ms320 KiB
41Hibás válasz1ms568 KiB
42Hibás válasz1ms320 KiB
43Hibás válasz1ms320 KiB
44Hibás válasz1ms508 KiB
45Hibás válasz1ms568 KiB
46Hibás válasz1ms320 KiB
47Hibás válasz1ms512 KiB
48Hibás válasz1ms320 KiB
49Hibás válasz1ms320 KiB
50Hibás válasz1ms408 KiB
51Hibás válasz1ms320 KiB
52Hibás válasz1ms404 KiB
53Időlimit túllépés598ms320 KiB
54Időlimit túllépés598ms320 KiB
55Hibás válasz1ms320 KiB
56Hibás válasz1ms320 KiB
57Hibás válasz1ms320 KiB
58Hibás válasz1ms320 KiB