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 |