211702026-01-12 16:26:10PKBDNS szakaszok száma (75 pont)cpp17Accepted 75/754ms1332 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
    /*
    


balról jobbra haladunk



lastG : utolsó G pozícioja

prefixA[i]: hány A van az elejétől i-ig


amikor T-t látunk (ez lehet a vége) : 



Ahhoz hogy a szakasz tartalmazzon Gt a kezdőpont legfeljebb lastG


Ahhoz hogy A-val kezdődjön, a kezdőpontnál A kell legyen







Az aktuális T re érvényes szakaszok = az A-k száma lastG-ig



*/
    long long N;
    cin >> N;
    string szo;
    cin >> szo;
    vector<long long>prefixA(N+1);
    prefixA[0] = 0;

    long long lastG = -1;

    long long megoldas = 0;
    long long currentMegoldas = 0;
    
    for(long long i = 0; i < N; i++){
        prefixA[i+1] = prefixA[i];
        if (szo[i] == 'A'){
            prefixA[i+1]++;
        }
    }
    
    for(long long i = 0; i < N; i++){
        if (szo[i] == 'G') {
            lastG = i;
            currentMegoldas = prefixA[i+1];
        }
        if (szo[i] == 'T') {
            megoldas+=currentMegoldas;
        }
    }

    cout << megoldas;


}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/01ms316 KiB
2Accepted0/04ms1332 KiB
3Accepted3/31ms316 KiB
4Accepted4/41ms316 KiB
5Accepted4/41ms356 KiB
6Accepted4/41ms552 KiB
7Accepted4/41ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms316 KiB
10Accepted4/41ms500 KiB
11Accepted4/41ms316 KiB
12Accepted4/41ms316 KiB
13Accepted4/41ms500 KiB
14Accepted4/41ms316 KiB
15Accepted3/34ms1332 KiB
16Accepted4/44ms1332 KiB
17Accepted4/44ms1332 KiB
18Accepted4/44ms1332 KiB
19Accepted4/44ms1276 KiB
20Accepted4/44ms1196 KiB
21Accepted3/34ms1332 KiB
22Accepted4/44ms1180 KiB