提出 #40146
ソースコード 拡げる
#include <iostream>
#include <string>
#include <vector>
using namespace std;
struct P{ int x, y; P(int _x, int _y):x(_x),y(_y){}; };
vector<string> board;
int h, w;
bool can_destroy(P p){
if(board[p.y][p.x] == '#') return false;
for(int x = 0; x < w; ++x){
if(board[p.y][x] == '#') return true;
}
for(int y = 0; y < h; ++y){
if(board[y][p.x] == '#') return true;
}
return false;
};
P find_bomb_point(){
for(int y = 0; y < h; ++y){
for(int x = 0; x < w; ++x){
if(board[y][x] == '.' && can_destroy(P(x,y))){
return P(x,y);
}
}
}
return P(-1,-1);
};
void bomb(P p, vector<P>& destroy){
if(board[p.y][p.x] == '#') return;
for(int x = 0; x < w; ++x){
if(board[p.y][x] == '#'){
board[p.y][x] = '.';
destroy.push_back(P(x,p.y));
}
}
for(int y = 0; y < h; ++y){
if(board[y][p.x] == '#'){
board[y][p.x] = '.';
destroy.push_back(P(p.x,y));
}
}
};
bool all_clear(){
for(int y = 0; y < h; ++y){
for(int x = 0; x < w; ++x){
if(board[y][x] == '#') return false;
}
}
return true;
};
int solv(int c){
if(all_clear()) return c;
P p = find_bomb_point();
if(p.x == -1) return 1e9;
board[p.y][p.x] = 'x';
int tc1 = solv(c);
board[p.y][p.x] = '.';
vector<P> destroy;
bomb(p, destroy);
int tc2 = solv(c+1);
for(; !destroy.empty(); destroy.pop_back()){
P p = destroy.back();
board[p.y][p.x] = '#';
}
return min(tc1, tc2);
};
int main(){
cin >> h >> w;
bool filled = true, empty = true;
for(int i=0;i<h;++i){
string line;
cin >> line;
if(line.find('.') != string::npos) filled = false;
if(line.find('#') != string::npos) empty = false;
board.push_back(line);
}
if(filled){
cout << -1 << endl;
return 0;
} else if(empty){
cout << 0 << endl;
return 0;
}
cout << solv(0) << endl;
return 0;
}
提出情報
ジャッジ結果
| セット名 | small | large | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 50 / 50 | 0 / 50 | ||||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| small | small/00_border_small_01.txt, small/00_border_small_02.txt, small/00_min_small_01.txt, small/00_min_small_02.txt, small/01_rand_small_00.txt, small/01_rand_small_01.txt, small/01_rand_small_02.txt, small/01_rand_small_03.txt, small/01_rand_small_04.txt, small/01_rand_small_05.txt, small/01_rand_small_06.txt, small/01_rand_small_07.txt, small/01_rand_small_08.txt, small/01_rand_small_09.txt, small/02_maxrand_small_00.txt, small/02_maxrand_small_01.txt, small/02_maxrand_small_02.txt, small/02_maxrand_small_03.txt, small/02_maxrand_small_04.txt, small/02_maxrand_small_05.txt, small/02_maxrand_small_06.txt, small/02_maxrand_small_07.txt, small/02_maxrand_small_08.txt, small/02_maxrand_small_09.txt, small/03_randhard_small_00.txt, small/03_randhard_small_01.txt, small/03_randhard_small_02.txt, small/03_randhard_small_03.txt, small/03_randhard_small_04.txt, small/03_randhard_small_05.txt, small/03_randhard_small_06.txt, small/03_randhard_small_07.txt, small/03_randhard_small_08.txt, small/03_randhard_small_09.txt, small/03_randhard_small_10.txt, small/03_randhard_small_11.txt, small/03_randhard_small_12.txt, small/03_randhard_small_13.txt, small/03_randhard_small_14.txt, small/03_randhard_small_15.txt, small/03_randhard_small_16.txt, small/03_randhard_small_17.txt, small/03_randhard_small_18.txt, small/03_randhard_small_19.txt, small/04_black_small_00.txt, small/04_black_small_01.txt, small/04_black_small_02.txt, small/04_black_small_03.txt, small/04_black_small_04.txt, small/0_sample1.txt, small/0_sample2.txt, small/0_sample4.txt |
| large | small/00_border_small_01.txt, small/00_border_small_02.txt, small/00_min_small_01.txt, small/00_min_small_02.txt, small/01_rand_small_00.txt, small/01_rand_small_01.txt, small/01_rand_small_02.txt, small/01_rand_small_03.txt, small/01_rand_small_04.txt, small/01_rand_small_05.txt, small/01_rand_small_06.txt, small/01_rand_small_07.txt, small/01_rand_small_08.txt, small/01_rand_small_09.txt, small/02_maxrand_small_00.txt, small/02_maxrand_small_01.txt, small/02_maxrand_small_02.txt, small/02_maxrand_small_03.txt, small/02_maxrand_small_04.txt, small/02_maxrand_small_05.txt, small/02_maxrand_small_06.txt, small/02_maxrand_small_07.txt, small/02_maxrand_small_08.txt, small/02_maxrand_small_09.txt, small/03_randhard_small_00.txt, small/03_randhard_small_01.txt, small/03_randhard_small_02.txt, small/03_randhard_small_03.txt, small/03_randhard_small_04.txt, small/03_randhard_small_05.txt, small/03_randhard_small_06.txt, small/03_randhard_small_07.txt, small/03_randhard_small_08.txt, small/03_randhard_small_09.txt, small/03_randhard_small_10.txt, small/03_randhard_small_11.txt, small/03_randhard_small_12.txt, small/03_randhard_small_13.txt, small/03_randhard_small_14.txt, small/03_randhard_small_15.txt, small/03_randhard_small_16.txt, small/03_randhard_small_17.txt, small/03_randhard_small_18.txt, small/03_randhard_small_19.txt, small/04_black_small_00.txt, small/04_black_small_01.txt, small/04_black_small_02.txt, small/04_black_small_03.txt, small/04_black_small_04.txt, small/0_sample1.txt, small/0_sample2.txt, small/0_sample4.txt, large/00_border_large_01.txt, large/00_border_large_02.txt, large/00_doubleslash_large_00.txt, large/00_slash_large_00.txt, large/00_tripleslash_large_00.txt, large/01_rand_large_00.txt, large/01_rand_large_01.txt, large/01_rand_large_02.txt, large/01_rand_large_03.txt, large/01_rand_large_04.txt, large/01_rand_large_05.txt, large/01_rand_large_06.txt, large/01_rand_large_07.txt, large/01_rand_large_08.txt, large/01_rand_large_09.txt, large/02_maxrand_large_00.txt, large/02_maxrand_large_01.txt, large/02_maxrand_large_02.txt, large/02_maxrand_large_03.txt, large/02_maxrand_large_04.txt, large/02_maxrand_large_05.txt, large/02_maxrand_large_06.txt, large/02_maxrand_large_07.txt, large/02_maxrand_large_08.txt, large/02_maxrand_large_09.txt, large/03_randhard_large_00.txt, large/03_randhard_large_01.txt, large/03_randhard_large_02.txt, large/03_randhard_large_03.txt, large/03_randhard_large_04.txt, large/03_randhard_large_05.txt, large/03_randhard_large_06.txt, large/03_randhard_large_07.txt, large/03_randhard_large_08.txt, large/03_randhard_large_09.txt, large/03_randhard_large_10.txt, large/03_randhard_large_11.txt, large/03_randhard_large_12.txt, large/03_randhard_large_13.txt, large/03_randhard_large_14.txt, large/03_randhard_large_15.txt, large/03_randhard_large_16.txt, large/03_randhard_large_17.txt, large/03_randhard_large_18.txt, large/03_randhard_large_19.txt, large/04_black_large_00.txt, large/04_black_large_01.txt, large/04_black_large_02.txt, large/04_black_large_03.txt, large/04_black_large_04.txt, large/05_almostblack_large_00.txt, large/05_almostblack_large_01.txt, large/05_almostblack_large_02.txt, large/05_almostblack_large_03.txt, large/05_almostblack_large_04.txt, large/05_almostblack_large_05.txt, large/05_almostblack_large_06.txt, large/05_almostblack_large_07.txt, large/05_almostblack_large_08.txt, large/05_almostblack_large_09.txt, large/05_almostblack_large_10.txt, large/05_almostblack_large_11.txt, large/05_almostblack_large_12.txt, large/05_almostblack_large_13.txt, large/05_almostblack_large_14.txt, large/05_almostblack_large_15.txt, large/05_almostblack_large_16.txt, large/05_almostblack_large_17.txt, large/05_almostblack_large_18.txt, large/05_almostblack_large_19.txt, large/0_sample3.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| large/00_border_large_01.txt | TLE | 3030 ms | 884 KiB |
| large/00_border_large_02.txt | TLE | 3030 ms | 896 KiB |
| large/00_doubleslash_large_00.txt | TLE | 3030 ms | 904 KiB |
| large/00_slash_large_00.txt | TLE | 3030 ms | 888 KiB |
| large/00_tripleslash_large_00.txt | RE | 0 ms | 888 KiB |
| large/01_rand_large_00.txt | AC | 32 ms | 888 KiB |
| large/01_rand_large_01.txt | AC | 25 ms | 780 KiB |
| large/01_rand_large_02.txt | AC | 25 ms | 776 KiB |
| large/01_rand_large_03.txt | TLE | 3030 ms | 884 KiB |
| large/01_rand_large_04.txt | TLE | 3030 ms | 888 KiB |
| large/01_rand_large_05.txt | TLE | 3029 ms | 868 KiB |
| large/01_rand_large_06.txt | TLE | 3030 ms | 896 KiB |
| large/01_rand_large_07.txt | AC | 22 ms | 780 KiB |
| large/01_rand_large_08.txt | TLE | 3030 ms | 888 KiB |
| large/01_rand_large_09.txt | AC | 22 ms | 860 KiB |
| large/02_maxrand_large_00.txt | AC | 23 ms | 916 KiB |
| large/02_maxrand_large_01.txt | TLE | 3029 ms | 900 KiB |
| large/02_maxrand_large_02.txt | TLE | 3029 ms | 892 KiB |
| large/02_maxrand_large_03.txt | TLE | 3029 ms | 820 KiB |
| large/02_maxrand_large_04.txt | TLE | 3030 ms | 896 KiB |
| large/02_maxrand_large_05.txt | TLE | 3029 ms | 892 KiB |
| large/02_maxrand_large_06.txt | TLE | 3029 ms | 804 KiB |
| large/02_maxrand_large_07.txt | TLE | 3030 ms | 896 KiB |
| large/02_maxrand_large_08.txt | TLE | 3030 ms | 884 KiB |
| large/02_maxrand_large_09.txt | AC | 22 ms | 784 KiB |
| large/03_randhard_large_00.txt | AC | 21 ms | 780 KiB |
| large/03_randhard_large_01.txt | TLE | 3029 ms | 892 KiB |
| large/03_randhard_large_02.txt | TLE | 3030 ms | 828 KiB |
| large/03_randhard_large_03.txt | TLE | 3030 ms | 892 KiB |
| large/03_randhard_large_04.txt | RE | 0 ms | 860 KiB |
| large/03_randhard_large_05.txt | TLE | 3029 ms | 880 KiB |
| large/03_randhard_large_06.txt | TLE | 3032 ms | 888 KiB |
| large/03_randhard_large_07.txt | TLE | 3030 ms | 888 KiB |
| large/03_randhard_large_08.txt | RE | 0 ms | 900 KiB |
| large/03_randhard_large_09.txt | TLE | 3030 ms | 892 KiB |
| large/03_randhard_large_10.txt | TLE | 3029 ms | 904 KiB |
| large/03_randhard_large_11.txt | TLE | 3030 ms | 900 KiB |
| large/03_randhard_large_12.txt | TLE | 3030 ms | 900 KiB |
| large/03_randhard_large_13.txt | TLE | 3030 ms | 904 KiB |
| large/03_randhard_large_14.txt | TLE | 3030 ms | 884 KiB |
| large/03_randhard_large_15.txt | TLE | 3029 ms | 892 KiB |
| large/03_randhard_large_16.txt | TLE | 3029 ms | 896 KiB |
| large/03_randhard_large_17.txt | TLE | 3029 ms | 892 KiB |
| large/03_randhard_large_18.txt | TLE | 3029 ms | 816 KiB |
| large/03_randhard_large_19.txt | TLE | 3030 ms | 888 KiB |
| large/04_black_large_00.txt | AC | 22 ms | 784 KiB |
| large/04_black_large_01.txt | TLE | 3029 ms | 940 KiB |
| large/04_black_large_02.txt | TLE | 3029 ms | 888 KiB |
| large/04_black_large_03.txt | AC | 22 ms | 756 KiB |
| large/04_black_large_04.txt | TLE | 3029 ms | 896 KiB |
| large/05_almostblack_large_00.txt | TLE | 3029 ms | 892 KiB |
| large/05_almostblack_large_01.txt | TLE | 3030 ms | 888 KiB |
| large/05_almostblack_large_02.txt | TLE | 3029 ms | 896 KiB |
| large/05_almostblack_large_03.txt | TLE | 3030 ms | 892 KiB |
| large/05_almostblack_large_04.txt | TLE | 3034 ms | 900 KiB |
| large/05_almostblack_large_05.txt | TLE | 3030 ms | 892 KiB |
| large/05_almostblack_large_06.txt | TLE | 3029 ms | 900 KiB |
| large/05_almostblack_large_07.txt | TLE | 3030 ms | 888 KiB |
| large/05_almostblack_large_08.txt | AC | 21 ms | 784 KiB |
| large/05_almostblack_large_09.txt | TLE | 3029 ms | 900 KiB |
| large/05_almostblack_large_10.txt | TLE | 3029 ms | 888 KiB |
| large/05_almostblack_large_11.txt | TLE | 3030 ms | 880 KiB |
| large/05_almostblack_large_12.txt | TLE | 3030 ms | 900 KiB |
| large/05_almostblack_large_13.txt | RE | 0 ms | 824 KiB |
| large/05_almostblack_large_14.txt | TLE | 3029 ms | 892 KiB |
| large/05_almostblack_large_15.txt | TLE | 3029 ms | 804 KiB |
| large/05_almostblack_large_16.txt | TLE | 3030 ms | 888 KiB |
| large/05_almostblack_large_17.txt | TLE | 3030 ms | 884 KiB |
| large/05_almostblack_large_18.txt | TLE | 3030 ms | 888 KiB |
| large/05_almostblack_large_19.txt | TLE | 3029 ms | 888 KiB |
| large/0_sample3.txt | AC | 23 ms | 772 KiB |
| small/00_border_small_01.txt | AC | 49 ms | 888 KiB |
| small/00_border_small_02.txt | AC | 48 ms | 888 KiB |
| small/00_min_small_01.txt | AC | 22 ms | 788 KiB |
| small/00_min_small_02.txt | AC | 22 ms | 764 KiB |
| small/01_rand_small_00.txt | AC | 22 ms | 788 KiB |
| small/01_rand_small_01.txt | AC | 23 ms | 884 KiB |
| small/01_rand_small_02.txt | AC | 22 ms | 792 KiB |
| small/01_rand_small_03.txt | AC | 26 ms | 892 KiB |
| small/01_rand_small_04.txt | AC | 23 ms | 788 KiB |
| small/01_rand_small_05.txt | AC | 23 ms | 784 KiB |
| small/01_rand_small_06.txt | AC | 23 ms | 740 KiB |
| small/01_rand_small_07.txt | AC | 22 ms | 760 KiB |
| small/01_rand_small_08.txt | AC | 21 ms | 788 KiB |
| small/01_rand_small_09.txt | AC | 22 ms | 788 KiB |
| small/02_maxrand_small_00.txt | AC | 22 ms | 792 KiB |
| small/02_maxrand_small_01.txt | AC | 23 ms | 784 KiB |
| small/02_maxrand_small_02.txt | AC | 22 ms | 792 KiB |
| small/02_maxrand_small_03.txt | AC | 28 ms | 896 KiB |
| small/02_maxrand_small_04.txt | AC | 176 ms | 888 KiB |
| small/02_maxrand_small_05.txt | AC | 120 ms | 896 KiB |
| small/02_maxrand_small_06.txt | AC | 189 ms | 768 KiB |
| small/02_maxrand_small_07.txt | AC | 171 ms | 888 KiB |
| small/02_maxrand_small_08.txt | AC | 232 ms | 788 KiB |
| small/02_maxrand_small_09.txt | AC | 22 ms | 780 KiB |
| small/03_randhard_small_00.txt | AC | 23 ms | 864 KiB |
| small/03_randhard_small_01.txt | AC | 21 ms | 784 KiB |
| small/03_randhard_small_02.txt | AC | 22 ms | 780 KiB |
| small/03_randhard_small_03.txt | AC | 23 ms | 784 KiB |
| small/03_randhard_small_04.txt | AC | 23 ms | 784 KiB |
| small/03_randhard_small_05.txt | AC | 36 ms | 880 KiB |
| small/03_randhard_small_06.txt | AC | 36 ms | 900 KiB |
| small/03_randhard_small_07.txt | AC | 39 ms | 892 KiB |
| small/03_randhard_small_08.txt | AC | 94 ms | 892 KiB |
| small/03_randhard_small_09.txt | AC | 113 ms | 736 KiB |
| small/03_randhard_small_10.txt | AC | 72 ms | 892 KiB |
| small/03_randhard_small_11.txt | AC | 22 ms | 772 KiB |
| small/03_randhard_small_12.txt | AC | 132 ms | 884 KiB |
| small/03_randhard_small_13.txt | AC | 164 ms | 872 KiB |
| small/03_randhard_small_14.txt | AC | 155 ms | 888 KiB |
| small/03_randhard_small_15.txt | AC | 126 ms | 884 KiB |
| small/03_randhard_small_16.txt | AC | 153 ms | 888 KiB |
| small/03_randhard_small_17.txt | AC | 22 ms | 788 KiB |
| small/03_randhard_small_18.txt | AC | 158 ms | 896 KiB |
| small/03_randhard_small_19.txt | AC | 241 ms | 896 KiB |
| small/04_black_small_00.txt | AC | 23 ms | 784 KiB |
| small/04_black_small_01.txt | AC | 234 ms | 900 KiB |
| small/04_black_small_02.txt | AC | 162 ms | 868 KiB |
| small/04_black_small_03.txt | AC | 300 ms | 896 KiB |
| small/04_black_small_04.txt | AC | 120 ms | 884 KiB |
| small/0_sample1.txt | AC | 60 ms | 884 KiB |
| small/0_sample2.txt | AC | 59 ms | 880 KiB |
| small/0_sample4.txt | AC | 23 ms | 780 KiB |