제출 #1253900

#제출 시각아이디문제언어결과실행 시간메모리
1253900minhtan1103Miners (IOI07_miners)C++20
100 / 100
401 ms656 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) 메시지

miners.cpp: In function 'int main()':
miners.cpp:28:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |         freopen("TASK.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
miners.cpp:29:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         freopen("TASK.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#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...