提出 #1301150


ソースコード 拡げる

Copy
#if 1
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <stack>
#include <array>
#include <deque>
#include <algorithm>
#include <utility>
#include <cstdint>
#include <functional>
#include <iomanip>
#include <numeric>
#include <assert.h>

auto& in = std::cin;
auto& out = std::cout;

int32_t H,W,K;
char map[1000][1000];
bool ok[1000][1000];
void func(int h, int w, int k)
{
	if (h < 0 || H <= h || w < 0 || W <= w) { return; }
	if (k < 0) { return; }
	if (ok[h][w]) { return; }
	if (map[h][w] == '#') { return; }
	ok[h][w] = true;
	func(h - 1, w, k - 1);
	func(h + 1, w, k - 1);
	func(h, w - 1, k - 1);
	func(h, w + 1, k - 1);
}

int main()
{
	using std::endl;
	in.sync_with_stdio(false);
	out.sync_with_stdio(false);

	in >> H>>W>>K;
	for (size_t i = 0; i < H; i++)
	{
		in >> map[i];
	}
	int sx=0, sy = 0;
	for (size_t i = 0; i < H; i++)
	{
		for (size_t w = 0; w < W; w++)
		{
			if (map[i][w] == 'S') {
				sx = w; sy = i; map[i][w] = '.';
			}
		}
	}

	{
		std::vector<std::pair<int, int>> que;
		std::vector<std::pair<int, int>> quenext;
		ok[sx][sy] = true;
		quenext.emplace_back(sx, sy);
		for (int count = 0; count < K; count++)
		{
			std::swap(quenext, que);
			for (auto& i : que) {
				auto w = i.first,h=i.second;
				const int diff[5] = { +1,0,-1,0,+1 };
				for (size_t j = 0; j < 4; j++)
				{
					h += diff[j]; w += diff[j + 1];
					if (h < 0 || H <= h || w < 0 || W <= w) {  }
					else if (ok[h][w]) {  }
					else if (map[h][w] == '#') {  }
					else {
						ok[h][w] = true;
						quenext.emplace_back(w, h);
					}
					h -= diff[j]; w -= diff[j + 1];
				}
			}
			que.clear();
		}
	}

	int res = H*W;
	for (int i = 0; i < H; i++)
	{
		for (int w = 0; w < W; w++)
		{
			if (ok[i][w]) {
				res = std::min(res, 1 + (std::min({ i,H - i - 1,w,W - w - 1 })+K-1)/K);
			}
		}
	}
	std::cout << res << std::endl;

	return 0;
}
#endif

提出情報

提出日時
問題 C - Closed Rooms
ユーザ eiya
言語 C++14 (GCC 5.4.1)
得点 0
コード長 2093 Byte
結果
実行時間 18 ms
メモリ 1920 KB

ジャッジ結果

セット名 得点 / 配点 テストケース
Sample 0 / 0 sample1.txt, sample2.txt, sample3.txt
All 0 / 700 sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt
ケース名 結果 実行時間 メモリ
in1.txt 3 ms 1024 KB
in10.txt 3 ms 1024 KB
in11.txt 3 ms 1024 KB
in12.txt 3 ms 1024 KB
in13.txt 3 ms 1024 KB
in14.txt 3 ms 1024 KB
in15.txt 3 ms 1024 KB
in16.txt 3 ms 1024 KB
in17.txt 3 ms 1024 KB
in18.txt 3 ms 1024 KB
in19.txt 3 ms 1024 KB
in2.txt 3 ms 1024 KB
in20.txt 2 ms 1024 KB
in21.txt 1 ms 256 KB
in22.txt 1 ms 256 KB
in23.txt 3 ms 1024 KB
in24.txt 3 ms 1024 KB
in25.txt 3 ms 1024 KB
in26.txt 4 ms 1152 KB
in27.txt 3 ms 1024 KB
in28.txt 9 ms 1664 KB
in29.txt 16 ms 1920 KB
in3.txt 3 ms 1024 KB
in30.txt 5 ms 1280 KB
in31.txt 3 ms 1024 KB
in32.txt 3 ms 1024 KB
in33.txt 18 ms 1920 KB
in34.txt 16 ms 1920 KB
in35.txt 3 ms 1152 KB
in36.txt 3 ms 1024 KB
in37.txt 3 ms 1024 KB
in38.txt 3 ms 1024 KB
in39.txt 3 ms 1024 KB
in4.txt 5 ms 1024 KB
in40.txt 3 ms 1024 KB
in5.txt 5 ms 1024 KB
in6.txt 3 ms 1024 KB
in7.txt 3 ms 1024 KB
in8.txt 3 ms 1024 KB
in9.txt 3 ms 1024 KB
sample1.txt 1 ms 256 KB
sample2.txt 1 ms 256 KB
sample3.txt 1 ms 256 KB