207282026-01-08 18:16:02algoproDNScpp17Hibás válasz 18/4012ms2620 KiB
// UUID: 0f3c480d-f0b9-470e-988a-261bdb86c2bd
#include <bits/stdc++.h>
using namespace std;

int main() {
	int longest = 0;
	string s;cin >> s;
	vector<int> p(s.size() + 1);
	for (int i = 1;i <= s.size();i++) {
		if (s[i - 1] == 'A') p[i] = (p[i - 1] + 1);
		else p[i] = (p[i - 1] - 1);
	}
	vector<int> first;
	for (int i = 0;i < p.size();i++) {
		if (-p[i] > first.size()) {
			first.push_back(i - 1);
		}
	}
	for (int i = 0;i < s.size() + 1;i++) {
		if (p[i] >= 0) longest = max(longest, i);
		else longest = max(longest, i - first[-p[i] - 1] - 1);
	}

	p = vector<int>(s.size() + 1);
	for (int i = 1;i <= s.size();i++) {
		if (s[i - 1] == 'C') p[i] = (p[i - 1] + 1);
		else p[i] = (p[i - 1] - 1);
	}
	first.clear();
	for (int i = 0;i < p.size();i++) {
		if (-p[i] > first.size()) {
			first.push_back(i - 1);
		}
	}
	for (int i = 0;i < s.size() + 1;i++) {
		if (p[i] >= 0) longest = max(longest, i);
		else longest = max(longest, i - first[-p[i] - 1] - 1);
	}
	cout << longest;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base18/40
1Hibás válasz0/01ms500 KiB
2Elfogadva0/012ms2620 KiB
3Elfogadva2/21ms508 KiB
4Elfogadva2/21ms316 KiB
5Hibás válasz0/21ms556 KiB
6Elfogadva2/22ms316 KiB
7Hibás válasz0/22ms316 KiB
8Elfogadva4/43ms1076 KiB
9Hibás válasz0/44ms1456 KiB
10Elfogadva4/46ms1712 KiB
11Elfogadva4/47ms1892 KiB
12Hibás válasz0/47ms1800 KiB
13Hibás válasz0/58ms1988 KiB
14Hibás válasz0/58ms2244 KiB