# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1253900 | minhtan1103 | Miners (IOI07_miners) | C++20 | 401 ms | 656 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxN = 1e5 + 5;
int n;
string s;
int dp[2][4][4][4][4];
int calc(int x, int y, int z){
set<int> food = {x, y, z};
int ans = food.size();
if (x == 0 || y == 0 || z == 0) --ans;
return ans;
}
int poinT(char x){
if (x == 'M') return 1;
if (x == 'F') return 2;
return 3;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
if (fopen("TASK.inp", "r")){
freopen("TASK.inp", "r", stdin);
freopen("TASK.out", "w", stdout);
}
cin >> n >> s;
s = " " + s;
memset(dp, -1, sizeof(dp));
dp[0][0][0][0][0] = 0;
for (int i = 1; i <= n; ++i){
int x = poinT(s[i]);
int curr = i%2, prev = 1-curr;
memset(dp[curr], -1, sizeof(dp[curr]));
for (int j = 0; j < 4; ++j) for (int k = 0; k < 4; ++k) for (int l = 0; l < 4; ++l) for (int m = 0; m < 4; ++m){
if (dp[prev][j][k][l][m] == -1) continue;
dp[i%2][x][j][l][m] = max(dp[i%2][x][j][l][m], dp[1-i%2][j][k][l][m] + calc(x, j, k));
dp[i%2][j][k][x][l] = max(dp[i%2][j][k][x][l], dp[1-i%2][j][k][l][m] + calc(x, l, m));
}
}
int ans = 0;
for (int i = 0; i < 4; ++i) for (int j = 0; j < 4; ++j) for (int k = 0; k < 4; ++k) for (int l = 0; l < 4; ++l){
ans = max(ans, dp[n%2][i][j][k][l]);
}
cout << ans;
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |