78772024-01-11 16:08:23KristófTakaros Sorozat (80 pont)cpp17Időlimit túllépés 24/80500ms5648 KiB
#include <iostream>

using namespace std;

int main()
{
    int n;
    cin>>n;
    string sor;
    cin>>sor;
    int s[n];
    int s2[n];
    for (int i=0;i<n;i++){
            if(sor[i]=='0'){
        s[i]=0;
            }
            if(sor[i]=='1'){
                s[i]=1;
            }
        s2[i]=s[i];
    }
    int k;
    int v;
    for(int i=0;i<n;i++){
        if(s[i]==1){
            k=i;
            break;
        }
    }
    int egy=0;
    for(int i=n-1;i>-1;i--){
        if(s[i]==0){
            v=i+1;
            break;
        }
    }
    int count=0;
    for(int i=k;i<v;i++){
        if(s[i]==1){
            count++;
        }
    }
    int darab=v-k;
    if(count>=darab-count){
        cout<<count<<endl;
    }
    else {cout<<darab-count<<endl;
        egy++;
    }
    int ans=0;
    for(int i=k;i<v-3;i++){
        egy=0;

        if(darab-count<count){
            egy=1;
        }
        if(s[i]+s[i+1]+s[i+2]+s[i+3]==2){
            s[i]=0;
            s[i+1]=0;
            s[i+2]=0;
            s[i+3]=0;
            if(egy==1){
                s[i]=1;
                s[i+1]=1;
                s[i+2]=1;
                s[i+3]=1;
            }
            ans++;
        }
        int la=0;
        while(s[k]==0){
            k++;
            la++;
        }
        if(la!=0){
        i=k;
        }
        while(v==1){
            v--;
        }
        int l=k;
        count=0;
        darab=v-k;
        while(l<v){
            count+=s[l];
            l++;
        }
    }
    int l=k;
    count=0;
    while(l<v){
            count+=s[l];
            l++;
    }
    if(darab-count<count){
        ans+=darab-count;
    }
    else ans+=count;
    cout<<ans<<endl;



    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base24/80
1Elfogadva0/03ms1808 KiB
2Időlimit túllépés0/0500ms2316 KiB
3Részben helyes2/43ms2216 KiB
4Elfogadva4/43ms2428 KiB
5Részben helyes2/43ms2668 KiB
6Részben helyes2/43ms2824 KiB
7Hibás válasz0/43ms2912 KiB
8Részben helyes2/43ms3032 KiB
9Részben helyes2/43ms2920 KiB
10Részben helyes2/43ms3160 KiB
11Részben helyes2/43ms3372 KiB
12Hibás válasz0/43ms3492 KiB
13Elfogadva4/44ms5152 KiB
14Időlimit túllépés0/4500ms3588 KiB
15Időlimit túllépés0/4462ms3920 KiB
16Időlimit túllépés0/4449ms4140 KiB
17Részben helyes2/46ms5648 KiB
18Időlimit túllépés0/4500ms4268 KiB
19Időlimit túllépés0/4453ms4532 KiB
20Időlimit túllépés0/4458ms4564 KiB
21Időlimit túllépés0/4469ms4636 KiB
22Időlimit túllépés0/4472ms4584 KiB