Submission #02281


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, m, r[51][51][3]; // i行目をx色に塗り替える時のx色以外の個数
char flag[51][51];
string tmp = "WBR";
cin >> n >> m;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> flag[i][j];
}
}
for(int x = 0; x < 3; x++){
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if(j == 0){
if(flag[i][j] != tmp[x]) r[i][j][x] = 1;
else r[i][j][x] = 0;
}
else{
r[i][j][x] = r[i][j-1][x];
if(flag[i][j] != tmp[x]) r[i][j][x]++;
}
}
}
}
int x = 0, ret = INT_MAX;
int ri = 0, rj = 0, rk = 0;
for(int i = 0; i < n-2; i++){
ri += r[i][m-1][0];
for(int j = i+1; j < n-1; j++){
rj += r[j][m-1][1];
for(int k = j+1; k < n; k++){
rk += r[k][m-1][2];
}
if(ri && rj && rk)
ret = min(ret, ri+rj+rk);
rk = 0;
}
if(ri && rj && rk)
ret = min(ret, ri+rj+rk);
rj = 0; rk = 0;
}
cout << ret << endl;
}

ステータス

項目 データ
問題 0259 - ロシアの旗 (Russian Flag)
ユーザー名 ei1409
投稿日時 2015-12-14 15:28:22
言語 C++11
状態 Accepted
得点 5
ソースコード長 1057 Byte
最大実行時間 18 ms
最大メモリ使用量 656 KB

セット

セット 得点 Cases
1 INPUT1 1 / 1 *in1.txt
2 INPUT2 1 / 1 *in2.txt
3 INPUT3 1 / 1 *in3.txt
4 INPUT4 1 / 1 *in4.txt
5 INPUT5 1 / 1 *in5.txt

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
2016-yo-t3-in1.txt AC 18 ms 476 KB
1
2016-yo-t3-in2.txt AC 13 ms 436 KB
2
2016-yo-t3-in3.txt AC 11 ms 512 KB
3
2016-yo-t3-in4.txt AC 13 ms 584 KB
4
2016-yo-t3-in5.txt AC 13 ms 656 KB
5
2016-yo-t3-in_s1.txt AC 12 ms 600 KB
2016-yo-t3-in_s2.txt AC 11 ms 572 KB