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...