202742026-01-05 18:36:21algoproDNScpp17Wrong answer 38/40123ms19636 KiB
// UUID: a867028e-8e1d-4fd1-9bad-cdeafcdb4947
#include <bits/stdc++.h>
using namespace std;

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

    mp[0].push_back(0);

    for (int i = 1; i <= n; i++) {
        pref[i] = pref[i - 1];
        if (s[i - 1] == c) pref[i]++;
        else pref[i]--;
        mp[pref[i]].push_back(i);
    }

    int ans = 0;
    for (auto &p : mp) {
        if (p.second.size() >= 2) {
            ans = max(ans, p.second.back() - p.second.front());
        }
    }
    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;
}
SubtaskSumTestVerdictTimeMemory
base38/40
1Accepted0/01ms316 KiB
2Accepted0/0123ms12828 KiB
3Accepted2/21ms500 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Wrong answer0/21ms316 KiB
7Accepted2/21ms484 KiB
8Accepted4/428ms3556 KiB
9Accepted4/448ms5588 KiB
10Accepted4/456ms6316 KiB
11Accepted4/476ms8004 KiB
12Accepted4/478ms14244 KiB
13Accepted5/5101ms18724 KiB
14Accepted5/5118ms19636 KiB