206872026-01-08 17:39:34algoproDNScpp17Hibás válasz 0/40317ms9924 KiB
// UUID: 63ab7caa-4b0d-4f97-9447-b4ab572cd77a
#include <bits/stdc++.h>
using namespace std;

int main() {
	string s; cin >> s;
	int n=s.size();
	int ans=0;
	for(char c : {'A', 'C', 'G', 'T'}){
		map<int, int> pos;
		pos[0]=-1;
		int runningTotal=0;
		for(int i=0;i<=n;i++){
			if(i<n) runningTotal+=(2*(c==s[i])-1);
			else{ runningTotal--; pos[runningTotal]++;}
			if(pos.count(runningTotal)==0) pos[runningTotal]=i;
			//printf("%d-%d (%c)\n", i, pos[pref[i+1]], c);
			ans=max(ans, i-pos[runningTotal]);
		}
	}
	cout << ans;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Hibás válasz0/01ms500 KiB
2Időlimit túllépés0/0317ms6440 KiB
3Hibás válasz0/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/452ms1792 KiB
9Hibás válasz0/497ms2756 KiB
10Hibás válasz0/4122ms3136 KiB
11Hibás válasz0/4173ms4292 KiB
12Hibás válasz0/4180ms7460 KiB
13Hibás válasz0/5224ms8900 KiB
14Hibás válasz0/5256ms9924 KiB