Submission #166121

#TimeUsernameProblemLanguageResultExecution timeMemory
166121DavidDamianMiners (IOI07_miners)C++11
9 / 100
1579 ms504 KiB
#include <bits/stdc++.h>
using namespace std;
int n;
char A[25];
///NO DP
int dif(string s)
{
    int sum=0;
    int bucket[3];
    memset(bucket,0,sizeof(bucket));
    for(char x: s)
    {
        if(x=='M' && bucket[0]==0){
            sum++;
            bucket[0]=1;
        }
        if(x=='B' && bucket[1]==0){
            sum++;
            bucket[1]=1;
        }
        if(x=='F' && bucket[2]==0){
            sum++;
            bucket[2]=1;
        }
    }
    return sum;
}
int coal(int i,int s1,int s2,string C1,string C2)
{
    //cout<<i<<" "<<s1<<" "<<s2<<" "<<C1<<" "<<C2<<endl;
    if(i==0) return s1+s2;
    int sum=0;
    int x;
    string c1=C1;
    if(c1.size()<3){
        c1+=A[i];
    }
    else{
        c1[0]=c1[1];
        c1[1]=c1[2];
        c1[2]=A[i];
    }
    x=dif(c1);
    sum=max(sum,coal(i-1,s1+x,s2,c1,C2));
    string c2=C2;
    if(c2.size()<3){
        c2+=A[i];
    }
    else{
        c2[0]=c2[1];
        c2[1]=c2[2];
        c2[2]=A[i];
    }
    x=dif(c2);
    sum=max(sum,coal(i-1,s1,s2+x,C1,c2));
    return sum;
}
int main()
{
    cin>>n;
  	if(n>20) cout<<0;
    for(int i=1;i<=n;i++){
        cin>>A[i];
    }
    string s="";
    s+=A[n];
    int total=coal(n-1,1,0,s,"");
    cout<<total<<'\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...