# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
54545 |
2018-07-04T04:18:15 Z |
김세빈(#1491) |
Miners (IOI07_miners) |
C++11 |
|
338 ms |
676 KB |
#include <bits/stdc++.h>
using namespace std;
char str[101010];
int D[2][256];
int n, ans;
int shift(int p, int t, int x)
{
if(x == 0) return ((p & 48) << 2) + (t << 4) + (p & 15);
else return (p & 240) + ((p & 3) << 2) + t;
}
int cost(int p, int t, int x)
{
int a, b, c;
if(x == 0) a = (p & 192) >> 6, b = (p & 48) >> 4, c = t;
else a = (p & 12) >> 2, b = p & 3, c = t;
if(b == 0 || (a == 0 && b == c) || (a == b && b == c)) return 1;
else if(a && b && a != b && b != c && c != a) return 3;
else return 2;
}
int main()
{
int i, j, k, t;
scanf("%d%s",&n,str);
for(i=1;i<256;i++) D[1][i] = -1e9;
for(i=0;i<n;i++){
if(str[i] == 'M') t = 1;
else if(str[i] == 'F') t = 2;
else t = 3;
for(j=0;j<256;j++) D[i&1][j] = -1e9;
for(j=0;j<256;j++){
k = shift(j, t, 0);
D[i&1][k] = max(D[i&1][k], D[~i&1][j] + cost(j, t, 0));
k = shift(j, t, 1);
D[i&1][k] = max(D[i&1][k], D[~i&1][j] + cost(j, t, 1));
}
}
for(i=0;i<256;i++) ans = max(ans, D[~n&1][i]);
printf("%d\n", ans);
return 0;
}
Compilation message
miners.cpp: In function 'int main()':
miners.cpp:31:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%s",&n,str);
~~~~~^~~~~~~~~~~~~~~
# |
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 |
488 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
556 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
556 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
556 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
556 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
556 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
20 ms |
568 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
568 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
89 ms |
624 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
263 ms |
676 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
338 ms |
676 KB |
Output is correct |