12932022-03-30 16:05:09k_balintNemzetközi Rántott Hús Fesztiválcpp14Elfogadva 100/100120ms38180 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
string s;
int suf[1000006];
int ans[1000006];
int best[1000006];
stack<int> st;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin>>n>>s;

    for(int i=n-1;i>=0;i--){
        if(s[i]=='H'){
            best[i]=i;
            st.push(i);
        }
        else{
            if(!st.empty()) st.pop();
            best[i]=st.empty()?n:st.top();
        }
    }

    int h=0,m=0,mh=0;
    for(int i=n-1;i>=0;i--){
        suf[i]=suf[i+1];
        if(s[i]=='H') ++h;
        else if(s[i]=='K'){
            if(h){
                --h; suf[i]++;
            }
            else if(mh){
                ++m; --mh;
            }
            else if(m){
                --m; suf[i]++;
            }
        }
        else{
            if(h){
                --h; ++mh;
                suf[i]++;
            }
            else{
                ++m;
            }
        }
        ans[i]=suf[i]+m/2;
    }

    for(int i=0;i<n;i++){
        if(best[i] != n){
            cout << (best[i]-i)/2 << ' ';
        }

        else{
            cout << ans[i] << ' ';
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva2ms1832 KiB
2Elfogadva2ms1980 KiB
subtask27/7
3Elfogadva1ms1880 KiB
4Elfogadva1ms1908 KiB
subtask39/9
5Elfogadva2ms2092 KiB
6Elfogadva2ms2012 KiB
7Elfogadva2ms2012 KiB
subtask414/14
8Elfogadva101ms28540 KiB
9Elfogadva108ms29584 KiB
10Elfogadva104ms30564 KiB
11Elfogadva108ms31532 KiB
12Elfogadva97ms31448 KiB
13Elfogadva97ms32412 KiB
14Elfogadva104ms32296 KiB
15Elfogadva101ms32752 KiB
subtask511/11
16Elfogadva1ms7116 KiB
17Elfogadva1ms7124 KiB
18Elfogadva1ms7124 KiB
subtask629/29
19Elfogadva2ms7316 KiB
20Elfogadva2ms7324 KiB
21Elfogadva2ms7328 KiB
22Elfogadva1ms7336 KiB
subtask730/30
23Elfogadva120ms33772 KiB
24Elfogadva119ms33172 KiB
25Elfogadva114ms33560 KiB
26Elfogadva114ms33188 KiB
27Elfogadva119ms33016 KiB
28Elfogadva119ms33720 KiB
29Elfogadva109ms34696 KiB
30Elfogadva114ms34612 KiB
31Elfogadva115ms34884 KiB
32Elfogadva116ms33416 KiB
33Elfogadva104ms34400 KiB
34Elfogadva108ms33912 KiB
35Elfogadva104ms34008 KiB
36Elfogadva103ms34268 KiB
37Elfogadva98ms35232 KiB
38Elfogadva101ms36220 KiB
39Elfogadva107ms37208 KiB
40Elfogadva108ms38180 KiB