Submission #3610660
Source Code Expand
#include <bits/stdc++.h> #define mp make_pair #define pb push_back using namespace std; typedef int32_t i32; typedef uint32_t u32; typedef int64_t i64; typedef uint64_t u64; typedef pair<int,int> pii; typedef vector<int> vi; const int MAX_H = 800, MAX_W = 800; int h,w,k; char grid[MAX_H][MAX_W]; const int dx[4] = {0,1,0,-1}; const int dy[4] = {-1,0,1,0}; bool kr[MAX_H][MAX_W] = {}; bool is_edge(int i, int j) { return i == 0 || i == h-1 || j == 0 || j == w-1; } int ceil(int a, int b) { return a / b + (a % b != 0 ? 1 : 0); } int main() { cin >> h >> w >> k; int si,sj; for (int i = 0; i < h; ++i) { for (int j = 0; j < w; ++j) { cin >> grid[i][j]; if (grid[i][j] == 'S') { si = i; sj = j; } } } queue<pair<pii,int> > q({{{si,sj},k}}); kr[si][sj] = true; while (!q.empty()) { auto p = q.front(); q.pop(); if (p.second == 0) break; for (int i = 0; i < 4; i++) { int new_x = p.first.first + dx[i]; int new_y = p.first.second + dy[i]; if (!kr[new_x][new_y] && grid[new_x][new_y] != '#') { if (is_edge(new_x, new_y)) { cout << 1 << endl; return 0; } q.push({{new_x,new_y},p.second-1}); kr[new_x][new_y] = true; } } } int c = INT_MAX; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { if (kr[i][j]) { c = min({c, ceil(i,k), ceil(h-1-i,k), ceil(j,k), ceil(w-1-j,k)}); } } } cout << c+1 << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Closed Rooms |
User | sash0 |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1594 Byte |
Status | AC |
Exec Time | 40 ms |
Memory | 1152 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample1.txt, sample2.txt, sample3.txt |
All | 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 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
in1.txt | AC | 36 ms | 896 KB |
in10.txt | AC | 40 ms | 896 KB |
in11.txt | AC | 36 ms | 896 KB |
in12.txt | AC | 36 ms | 896 KB |
in13.txt | AC | 36 ms | 896 KB |
in14.txt | AC | 36 ms | 896 KB |
in15.txt | AC | 36 ms | 896 KB |
in16.txt | AC | 36 ms | 896 KB |
in17.txt | AC | 36 ms | 896 KB |
in18.txt | AC | 36 ms | 896 KB |
in19.txt | AC | 36 ms | 896 KB |
in2.txt | AC | 36 ms | 896 KB |
in20.txt | AC | 2 ms | 896 KB |
in21.txt | AC | 1 ms | 256 KB |
in22.txt | AC | 1 ms | 256 KB |
in23.txt | AC | 36 ms | 896 KB |
in24.txt | AC | 36 ms | 896 KB |
in25.txt | AC | 36 ms | 896 KB |
in26.txt | AC | 37 ms | 1024 KB |
in27.txt | AC | 36 ms | 896 KB |
in28.txt | AC | 37 ms | 1152 KB |
in29.txt | AC | 36 ms | 1024 KB |
in3.txt | AC | 36 ms | 896 KB |
in30.txt | AC | 40 ms | 1152 KB |
in31.txt | AC | 36 ms | 896 KB |
in32.txt | AC | 36 ms | 896 KB |
in33.txt | AC | 37 ms | 1152 KB |
in34.txt | AC | 36 ms | 1024 KB |
in35.txt | AC | 36 ms | 896 KB |
in36.txt | AC | 36 ms | 896 KB |
in37.txt | AC | 38 ms | 896 KB |
in38.txt | AC | 36 ms | 896 KB |
in39.txt | AC | 36 ms | 896 KB |
in4.txt | AC | 36 ms | 896 KB |
in40.txt | AC | 36 ms | 896 KB |
in5.txt | AC | 36 ms | 896 KB |
in6.txt | AC | 36 ms | 896 KB |
in7.txt | AC | 36 ms | 896 KB |
in8.txt | AC | 36 ms | 896 KB |
in9.txt | AC | 38 ms | 896 KB |
sample1.txt | AC | 1 ms | 256 KB |
sample2.txt | AC | 1 ms | 256 KB |
sample3.txt | AC | 1 ms | 256 KB |