15112022-11-21 18:27:46lacitoDNScpp11Hibás válasz 34/4013ms6980 KiB
#include <bits/stdc++.h>
using namespace std;

string s;
int maxi;

void leghossz(char c) {
	vector<int> elsolegk;
	int szam = 0;
	for (int i = 0; i < s.length(); i++) {
		if (s[i] == c) {
			szam++;
			if (szam >= 0) {
				if (i + 1 > maxi) maxi = i + 1;
			} else {
				if (maxi < i - elsolegk[abs(szam)] + 1) {
					maxi = i - elsolegk[abs(szam)] + 1;
				}
			}
		} else {
			szam--;
			if (szam >= 0) {
				if (i + 1 > maxi) maxi = i + 1;
			} else if (szam < 0 && elsolegk.size() < abs(szam)) {
				elsolegk.push_back(i);
			}
		}
	}
}

int main() {
	cin >> s;
	
	leghossz('A');
	leghossz('C');
	leghossz('G');
	leghossz('T');
	cout << maxi << endl;
	
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base34/40
1Elfogadva0/03ms1844 KiB
2Hibás válasz0/013ms4380 KiB
3Hibás válasz0/22ms2108 KiB
4Elfogadva2/22ms2324 KiB
5Hibás válasz0/22ms2512 KiB
6Elfogadva2/22ms2716 KiB
7Hibás válasz0/22ms2796 KiB
8Elfogadva4/44ms3556 KiB
9Elfogadva4/46ms4152 KiB
10Elfogadva4/47ms4208 KiB
11Elfogadva4/48ms4716 KiB
12Elfogadva4/48ms6272 KiB
13Elfogadva5/510ms6956 KiB
14Elfogadva5/510ms6980 KiB