# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
54583 |
2018-07-04T07:03:47 Z |
나는김현수(#2054) |
Miners (IOI07_miners) |
C++11 |
|
309 ms |
704 KB |
#include<bits/stdc++.h>
using namespace std;
const int N = 100005, inf = 1e9;
int n, dt[2][4][4][4][4];
char a[N];
int main()
{
scanf("%d%s",&n,a+1);
for(int j=0;j<256;j++) {
int A = j/64, B = j/16%4, C = j/4%4, D = j%4;
dt[0][A][B][C][D] = -inf;
}
dt[0][0][0][0][0] = 0;
for(int i=1;i<=n;i++) {
int E = (a[i] == 'M')*1 + (a[i] == 'B')*2 + (a[i] == 'F')*3;
for(int j=0;j<256;j++) {
int A = j/64, B = j/16%4, C = j/4%4, D = j%4;
dt[i%2][A][B][C][D] = -inf;
}
for(int j=0;j<256;j++) {
int A = j/64, B = j/16%4, C = j/4%4, D = j%4, P = dt[1-i%2][A][B][C][D], X;
if(A == 0 && B == 0) {
dt[i%2][E][E][C][D] = max(dt[i%2][E][E][C][D], P + 1);
}
else {
X = (A != B) + (A != E) + (B != E);
X = (X >= 3) + (X >= 2) + 1;
dt[i%2][B][E][C][D] = max(dt[i%2][B][E][C][D], P + X);
}
if(C == 0 && D == 0) {
dt[i%2][A][B][E][E] = max(dt[i%2][A][B][E][E], P + 1);
}
else {
X = (C != D) + (C != E) + (D != E);
X = (X >= 3) + (X >= 2) + 1;
dt[i%2][A][B][D][E] = max(dt[i%2][A][B][D][E], P + X);
}
}
}
int ans = 0;
for(int j=0;j<256;j++) {
int A = j/64, B = j/16%4, C = j/4%4, D = j%4;
ans = max(ans, dt[n%2][A][B][C][D]);
}
printf("%d\n",ans);
}
Compilation message
miners.cpp: In function 'int main()':
miners.cpp:10:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%s",&n,a+1);
~~~~~^~~~~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
544 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
604 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
17 ms |
620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
32 ms |
620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
80 ms |
620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
232 ms |
620 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
309 ms |
704 KB |
Output is correct |