Submission #10292
ソースコード
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 | #include<bits/stdc++.h> using namespace std; char mas[51][51]; int h,w; int ans=2500; struct WBR{ int w,b,r; WBR() : w(0), b(0), r(0){} }; WBR flag[51]={WBR()}; void solve( int i, int c, int change); int main(){ cin>>h>>w; for ( int i=0;i<h;i++){ cin>>mas[i]; for ( int j=0;j<w;j++){ if (mas[i][j]== 'W' ) flag[i].w++; else if (mas[i][j]== 'B' ) flag[i].b++; else if (mas[i][j]== 'R' ) flag[i].r++; } } solve(0, 0, 0); cout<<ans<<endl; return 0; } void solve( int i, int c, int change) { if (i==h-1 && c!=2) return ; if (i==h){ ans=min(ans, change); return ; } if (c==0){ solve(i+1, c, change + w-flag[i].w); solve(i+1, c+1, change + w-flag[i].w); } if (c==1){ solve(i+1, c, change + w-flag[i].b); solve(i+1, c+1, change + w-flag[i].b); } if (c==2) solve(i+1, c, change + w-flag[i].r); return ; } |
ステータス
項目 | データ |
---|---|
問題 | 0259 - ロシアの旗 (Russian Flag) |
ユーザー名 | ei1538 |
投稿日時 | 2016-11-15 19:54:42 |
言語 | C++11 |
状態 | Accepted |
得点 | 5 |
ソースコード長 | 935 Byte |
最大実行時間 | 30 ms |
最大メモリ使用量 | 536 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 | 30 ms | 476 KB |
1
|
||||
2016-yo-t3-in2.txt | AC | 18 ms | 452 KB |
2
|
||||
2016-yo-t3-in3.txt | AC | 16 ms | 432 KB |
3
|
||||
2016-yo-t3-in4.txt | AC | 18 ms | 536 KB |
4
|
||||
2016-yo-t3-in5.txt | AC | 17 ms | 392 KB |
5
|
||||
2016-yo-t3-in_s1.txt | AC | 19 ms | 372 KB | |||||
2016-yo-t3-in_s2.txt | AC | 13 ms | 480 KB |