提出 #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;
}

提出情報

提出日時
問題 D - 大爆発
ユーザ nrmnr
言語 C++ (G++ 4.6.4)
得点 50
コード長 1880 Byte
結果 TLE
実行時間 3034 ms
メモリ 940 KiB

ジャッジ結果

セット名 small large
得点 / 配点 50 / 50 0 / 50
結果
AC × 52
AC × 64
TLE × 55
RE × 4
セット名 テストケース
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