Submission #2376982
Source Code Expand
#include <bits/stdc++.h>
#define ADD(a, b) a = (a + ll(b)) % mod
#define MUL(a, b) a = (a * ll(b)) % mod
#define MAX(a, b) a = max(a, b)
#define MIN(a, b) a = min(a, b)
#define rep(i, a, b) for(int i = int(a); i < int(b); i++)
#define rer(i, a, b) for(int i = int(a) - 1; i >= int(b); i--)
#define all(a) (a).begin(), (a).end()
#define sz(v) (int)(v).size()
#define pb push_back
#define sec second
#define fst first
#define debug(fmt, ...) Debug(__LINE__, ":", fmt, ##__VA_ARGS__)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef pair<int, pi> ppi;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vl> mat;
typedef complex<double> comp;
void Debug() {cout << '\n'; }
template<class FIRST, class... REST>void Debug(FIRST arg, REST... rest){
cout<<arg<<" ";Debug(rest...);}
template<class T>ostream& operator<<(ostream& out,const vector<T>& v) {
out<<"[";if(!v.empty()){rep(i,0,sz(v)-1)out<<v[i]<<", ";out<<v.back();}out<<"]";return out;}
template<class S, class T>ostream& operator<<(ostream& out,const pair<S, T>& v){
out<<"("<<v.first<<", "<<v.second<<")";return out;}
const int MAX_N = 200010;
const int MAX_V = 100010;
const double eps = 1e-6;
const ll mod = 1000000007;
const int inf = 1 << 29;
const ll linf = 1LL << 60;
const double PI = 3.14159265358979323846;
///////////////////////////////////////////////////////////////////////////////////////////////////
int N, M, K;
bool vsd[1010][1010];
char S[1010][1010];
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
void solve() {
cin >> N >> M >> K;
int sx, sy;
rep(i, 0, N) {
rep(j, 0, M) {
cin >> S[i][j];
if(S[i][j] == 'S') {
sx = i; sy = j;
}
}
}
queue<pi> que;
vsd[sx][sy] = true;
que.push(pi(sx, sy));
rep(q, 0, K) {
int qs = sz(que);
while(qs--) {
pi p = que.front(); que.pop();
int x = p.fst, y = p.sec;
rep(i, 0, 4) {
int nx = x + dx[i], ny = y + dy[i];
if(0 <= nx && nx < N && 0 <= ny && ny < M) {
if(S[nx][ny] != '#' && !vsd[nx][ny]) {
vsd[nx][ny] = true;
que.push(pi(nx, ny));
}
}
}
}
}
int ans = inf;
rep(i, 0, N) {
rep(j, 0, M) {
if(vsd[i][j]) {
// debug(i, j);
MIN(ans, 1 + (min(min(i, j), min(N - 1 - i, M - 1 - j)) + K - 1) / K);
}
}
}
cout << ans << "\n";
}
int main() {
#ifndef LOCAL
ios::sync_with_stdio(false);
cin.tie(0);
#endif
cout << fixed;
cout.precision(20);
srand((unsigned int)time(NULL));
#ifdef LOCAL
//freopen("in.txt", "wt", stdout); //for tester
freopen("in.txt", "rt", stdin);
#endif
solve();
#ifdef LOCAL
cerr << "Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << " s.\n";
#endif
return 0;
}
Submission Info
Submission Time |
|
Task |
C - Closed Rooms |
User |
omochana2 |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
2830 Byte |
Status |
AC |
Exec Time |
23 ms |
Memory |
1920 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 |
9 ms |
1024 KB |
in10.txt |
AC |
9 ms |
1024 KB |
in11.txt |
AC |
9 ms |
1024 KB |
in12.txt |
AC |
9 ms |
1024 KB |
in13.txt |
AC |
9 ms |
1024 KB |
in14.txt |
AC |
9 ms |
1024 KB |
in15.txt |
AC |
9 ms |
1024 KB |
in16.txt |
AC |
9 ms |
1024 KB |
in17.txt |
AC |
9 ms |
1024 KB |
in18.txt |
AC |
9 ms |
1024 KB |
in19.txt |
AC |
9 ms |
1024 KB |
in2.txt |
AC |
9 ms |
1024 KB |
in20.txt |
AC |
2 ms |
1024 KB |
in21.txt |
AC |
1 ms |
256 KB |
in22.txt |
AC |
1 ms |
256 KB |
in23.txt |
AC |
9 ms |
1024 KB |
in24.txt |
AC |
9 ms |
1024 KB |
in25.txt |
AC |
9 ms |
1024 KB |
in26.txt |
AC |
9 ms |
1152 KB |
in27.txt |
AC |
9 ms |
1024 KB |
in28.txt |
AC |
15 ms |
1664 KB |
in29.txt |
AC |
21 ms |
1792 KB |
in3.txt |
AC |
9 ms |
1024 KB |
in30.txt |
AC |
10 ms |
1280 KB |
in31.txt |
AC |
9 ms |
1024 KB |
in32.txt |
AC |
9 ms |
1024 KB |
in33.txt |
AC |
23 ms |
1792 KB |
in34.txt |
AC |
22 ms |
1920 KB |
in35.txt |
AC |
9 ms |
1152 KB |
in36.txt |
AC |
9 ms |
1024 KB |
in37.txt |
AC |
9 ms |
1024 KB |
in38.txt |
AC |
9 ms |
1024 KB |
in39.txt |
AC |
9 ms |
1024 KB |
in4.txt |
AC |
10 ms |
1024 KB |
in40.txt |
AC |
9 ms |
1024 KB |
in5.txt |
AC |
10 ms |
1024 KB |
in6.txt |
AC |
9 ms |
1024 KB |
in7.txt |
AC |
9 ms |
1024 KB |
in8.txt |
AC |
9 ms |
1024 KB |
in9.txt |
AC |
9 ms |
1024 KB |
sample1.txt |
AC |
1 ms |
256 KB |
sample2.txt |
AC |
1 ms |
256 KB |
sample3.txt |
AC |
1 ms |
256 KB |