Submission #1180449

#TimeUsernameProblemLanguageResultExecution timeMemory
1180449LeonaRagingMiners (IOI07_miners)C++20
100 / 100
647 ms111796 KiB
#include<bits/stdc++.h> using namespace std; const int maxn = 1e5 + 4; int n, dp[maxn][4][4][4][4]; string s; int get(char c) { if (c == 'M') return 1; if (c == 'F') return 2; if (c == 'B') return 3; } int get(int a, int b, int c) { vector<int> vec; vec.push_back(a); vec.push_back(b); vec.push_back(c); sort(vec.begin(), vec.end()); int res = 1; for (int i = 0; i < 2; i++) if (vec[i] != vec[i + 1] && vec[i]) res++; return res; } int Solve(int i, int f1, int f2, int s1, int s2) { if (i == n) return 0; if (dp[i][f1][f2][s1][s2] != -1) return dp[i][f1][f2][s1][s2]; dp[i][f1][f2][s1][s2] = max(Solve(i + 1, get(s[i]), f1, s1, s2) + get(get(s[i]), f1, f2), Solve(i + 1, f1, f2, get(s[i]), s1) + get(get(s[i]), s1, s2)); return dp[i][f1][f2][s1][s2]; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); if (fopen(".INP", "r")) { freopen(".INP", "r", stdin); freopen(".OUT", "w", stdout); } cin >> n >> s; memset(dp, -1, sizeof dp); cout << Solve(0, 0, 0, 0, 0); // cout << dp[5][2][3][3][2]; }

Compilation message (stderr)

miners.cpp: In function 'int get(char)':
miners.cpp:13:1: warning: control reaches end of non-void function [-Wreturn-type]
   13 | }
      | ^
miners.cpp: In function 'int main()':
miners.cpp:40:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |                 freopen(".INP", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~
miners.cpp:41:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   41 |                 freopen(".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...