206852026-01-08 17:35:00algoproDNScpp17Hibás válasz 38/40284ms10684 KiB
// UUID: 1b5b2709-34cc-4c01-867b-73d71cc9bdf2
#include <bits/stdc++.h>
using namespace std;

int main() {
	string s; cin >> s;
	int n=s.size();
	int ans=1;
	for(char c : {'A', 'C', 'G', 'T'}){
		vector<int> pref(n+1);
		map<int, int> pos;
		pos[0]=-1;
		for(int i=0;i<n;i++){
			pref[i+1]=pref[i]+(2*(c==s[i])-1);
			if(pos.count(pref[i+1])==0) pos[pref[i+1]]=i;
			else{
				//printf("%d-%d (%c)\n", i, pos[pref[i+1]], c);
				ans=max(ans, i-pos[pref[i+1]]);
			}
		}
	}
	cout << ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base38/40
1Elfogadva0/01ms508 KiB
2Elfogadva0/0284ms7204 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva4/446ms2148 KiB
9Elfogadva4/483ms3172 KiB
10Elfogadva4/4112ms3672 KiB
11Elfogadva4/4158ms4804 KiB
12Elfogadva4/4143ms8016 KiB
13Elfogadva5/5178ms9732 KiB
14Elfogadva5/5215ms10684 KiB