202752026-01-05 18:40:58algoproDNScpp17Hibás válasz 0/40225ms10668 KiB
// UUID: 9f86197e-2a41-47d7-87e5-0baa6feae1ec
#include <bits/stdc++.h>
using namespace std;

int v(const string& s, char c) {
    int n = s.size();
    vector<int> pref(n + 1, 0);
    map<int, int> first;

    first[0] = 0;

    for (int i = 1; i <= n; i++) {
        pref[i] = pref[i - 1] + (s[i - 1] == c ? 1 : -1);
        if (!first.count(pref[i])) {
            first[pref[i]] = i;
        }
    }

    int ans = 0;
    int bestPos = n + 1;

    for (auto &p : first) {
        bestPos = min(bestPos, p.second);
        ans = max(ans, p.second - bestPos);
    }

    return ans;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    string s;
    cin >> s;

    int res = 0;
    for (char c : {'A', 'C', 'G', 'T'}) {
        res = max(res, v(s, c));
    }

    cout << res << '\n';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/0225ms7356 KiB
3Hibás válasz0/21ms500 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/441ms2128 KiB
9Hibás válasz0/471ms3296 KiB
10Hibás válasz0/492ms3728 KiB
11Hibás válasz0/4129ms4688 KiB
12Hibás válasz0/4146ms8052 KiB
13Hibás válasz0/5177ms9716 KiB
14Hibás válasz0/5194ms10668 KiB