# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
957550 |
2024-04-04T02:59:20 Z |
hirayuu_oj |
Miners (IOI07_miners) |
C++17 |
|
426 ms |
524288 KB |
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)
#define rep2(i,a,b) for(int i=a; i<(b); i++)
#define all(x) x.begin(),x.end()
using ll=long long;
const int INF=INT_MAX>>1;
int main(){
int N;
cin>>N;
string S;
cin>>S;
rep(i,N){
if(S[i]=='M'){
S[i]='a';
}
if(S[i]=='F'){
S[i]='b';
}
if(S[i]=='B'){
S[i]='c';
}
}
vector<vector<int>> dp(N+1,vector<int>(1600,-INF));
dp[0][0]=0;
array<string,40> ser;
ser[0]="ddd";
int cnt=1;
rep(i,3){
ser[cnt]="ddd";
ser[cnt][2]='a'+i;
cnt++;
rep(j,3){
ser[cnt]="ddd";
ser[cnt][2]='a'+i;
ser[cnt][1]='a'+j;
cnt++;
rep(k,3){
ser[cnt]="ddd";
ser[cnt][2]='a'+i;
ser[cnt][1]='a'+j;
ser[cnt][0]='a'+k;
cnt++;
}
}
}
array<int,64> num;
array<int,64> score;
array<int,40> fix;
rep(i,40){
num[(ser[i][0]-'a')+(ser[i][1]-'a')*4+(ser[i][2]-'a')*16]=i;
fix[i]=(ser[i][0]-'a')+(ser[i][1]-'a')*4+(ser[i][2]-'a')*16;
int cnt[4];
cnt[0]=0;
cnt[1]=0;
cnt[2]=0;
cnt[(ser[i][0]-'a')]++;
cnt[(ser[i][1]-'a')]++;
cnt[(ser[i][2]-'a')]++;
score[(ser[i][0]-'a')+(ser[i][1]-'a')*4+(ser[i][2]-'a')*16]=0;
if(cnt[0]!=0){
score[(ser[i][0]-'a')+(ser[i][1]-'a')*4+(ser[i][2]-'a')*16]++;
}
if(cnt[1]!=0){
score[(ser[i][0]-'a')+(ser[i][1]-'a')*4+(ser[i][2]-'a')*16]++;
}
if(cnt[2]!=0){
score[(ser[i][0]-'a')+(ser[i][1]-'a')*4+(ser[i][2]-'a')*16]++;
}
}
rep(i,N){
rep(j,40){
rep(k,40){
if(dp[i][j*40+k]<=-INF)continue;
int nj=fix[j]/4+(S[i]-'a')*16;
int nk=fix[k]/4+(S[i]-'a')*16;
dp[i+1][num[nj]*40+k]=max(dp[i+1][num[nj]*40+k],dp[i][j*40+k]+score[nj]);
dp[i+1][j*40+num[nk]]=max(dp[i+1][j*40+num[nk]],dp[i][j*40+k]+score[nk]);
}
}
}
int ans=0;
rep(i,1600){
ans=max(ans,dp[N][i]);
}
cout<<ans<<"\n";
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
344 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
348 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
6748 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
25 ms |
31836 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
56 ms |
63480 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
132 ms |
158024 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
426 ms |
472968 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
236 ms |
524288 KB |
Execution killed with signal 9 |
2 |
Halted |
0 ms |
0 KB |
- |