Submission #8960674
Source Code Expand
#define _GLIBCXX_DEBUG #include <bits/stdc++.h> using namespace std; using edge = pair<int, long long>; using Graph = vector<vector<edge>>; //#define int long long int H, W, s, g; long long T; int idx (int h, int w) { return h * W + w; } const int dx[4] = {1, 0, -1, 0}; const int dy[4] = {0, 1, 0, -1}; Graph make_graph(const vector<string> &S, long long cost) { Graph G(H*W); for (int h = 0; h < H; h++) for (int w = 0; w < W; w++) { int from = idx(h, w); for (int i = 0; i < 4; i++) { int dh = h + dy[i], dw = w + dx[i]; int to = idx(dh, dw); if (dh<0 || H<=dh || dw<0 || W<=dw) continue; if (S[dh][dw] == '#') G[from].emplace_back(to, cost); else G[from].emplace_back(to, 1LL); } } return G; } long long dijkstra(const vector<string> &S, long long cost){ using Pi = pair<long long, int>; const long long INF = 1e18; Graph G = make_graph(S, cost); vector<long long> ret(G.size(), INF); priority_queue<Pi, vector<Pi>, greater<Pi>> que; ret[s] = 0; que.emplace(ret[s], s); while (!que.empty()) { long long dist; int node; tie(dist, node) = que.top(); que.pop(); if (ret[node] < dist) continue; for (auto &e : G[node]) { int next_node; long long next_dist; tie(next_node, next_dist) = e; if (ret[next_node] > ret[node] + next_dist) { ret[next_node] = ret[node] + next_dist; que.emplace(ret[next_node], next_node); } } } return ret[g]; } signed main() { cin >> H >> W >> T; vector<string> S(H); for (int i = 0; i < H; i++) { cin >> S[i]; for (int j = 0; j < W; j++) { if (S[i][j] == 'S') s = idx(i, j); if (S[i][j] == 'G') g = idx(i, j); } } long long ok = 0, ng = 1e18; while (abs(ok-ng) > 1) { long long mid = (ok+ng)/2; long long f = dijkstra(S, mid); if (f > T) ng = mid; else ok = mid; //cout << f << endl; } cout << ok << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - 壁抜け |
User | kya |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2239 Byte |
Status | AC |
Exec Time | 18 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 40 / 40 | 30 / 30 | 30 / 30 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
Subtask1 | subtask0_sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt |
Subtask2 | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt |
Subtask3 | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask3_41.txt, subtask3_42.txt, subtask3_43.txt, subtask3_44.txt, subtask3_45.txt, subtask3_46.txt, subtask3_47.txt, subtask3_48.txt, subtask3_49.txt, subtask3_50.txt, subtask3_51.txt, subtask3_52.txt, subtask3_53.txt, subtask3_54.txt, subtask3_55.txt, subtask3_56.txt, subtask3_57.txt, subtask3_58.txt, subtask3_59.txt, subtask3_60.txt, subtask3_61.txt, subtask3_62.txt, subtask3_63.txt, subtask3_64.txt, subtask3_65.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample_01.txt | AC | 2 ms | 256 KB |
subtask0_sample_02.txt | AC | 2 ms | 256 KB |
subtask0_sample_03.txt | AC | 3 ms | 256 KB |
subtask1_01.txt | AC | 2 ms | 256 KB |
subtask1_02.txt | AC | 2 ms | 256 KB |
subtask1_03.txt | AC | 2 ms | 256 KB |
subtask1_04.txt | AC | 2 ms | 256 KB |
subtask1_05.txt | AC | 2 ms | 256 KB |
subtask1_06.txt | AC | 2 ms | 256 KB |
subtask1_07.txt | AC | 2 ms | 256 KB |
subtask1_08.txt | AC | 2 ms | 256 KB |
subtask1_09.txt | AC | 2 ms | 256 KB |
subtask1_10.txt | AC | 2 ms | 256 KB |
subtask1_11.txt | AC | 2 ms | 256 KB |
subtask1_12.txt | AC | 2 ms | 256 KB |
subtask1_13.txt | AC | 2 ms | 256 KB |
subtask1_14.txt | AC | 2 ms | 256 KB |
subtask1_15.txt | AC | 2 ms | 256 KB |
subtask2_16.txt | AC | 15 ms | 256 KB |
subtask2_17.txt | AC | 15 ms | 256 KB |
subtask2_18.txt | AC | 14 ms | 256 KB |
subtask2_19.txt | AC | 14 ms | 256 KB |
subtask2_20.txt | AC | 17 ms | 256 KB |
subtask2_21.txt | AC | 18 ms | 256 KB |
subtask2_22.txt | AC | 16 ms | 256 KB |
subtask2_23.txt | AC | 16 ms | 256 KB |
subtask2_24.txt | AC | 16 ms | 256 KB |
subtask2_25.txt | AC | 9 ms | 256 KB |
subtask2_26.txt | AC | 9 ms | 256 KB |
subtask2_27.txt | AC | 5 ms | 256 KB |
subtask2_28.txt | AC | 5 ms | 256 KB |
subtask2_29.txt | AC | 8 ms | 256 KB |
subtask2_30.txt | AC | 6 ms | 256 KB |
subtask2_31.txt | AC | 4 ms | 256 KB |
subtask2_32.txt | AC | 3 ms | 256 KB |
subtask2_33.txt | AC | 16 ms | 256 KB |
subtask2_34.txt | AC | 16 ms | 256 KB |
subtask2_35.txt | AC | 17 ms | 256 KB |
subtask2_36.txt | AC | 17 ms | 256 KB |
subtask2_37.txt | AC | 17 ms | 256 KB |
subtask2_38.txt | AC | 16 ms | 256 KB |
subtask2_39.txt | AC | 15 ms | 256 KB |
subtask2_40.txt | AC | 14 ms | 256 KB |
subtask3_41.txt | AC | 15 ms | 256 KB |
subtask3_42.txt | AC | 15 ms | 256 KB |
subtask3_43.txt | AC | 14 ms | 256 KB |
subtask3_44.txt | AC | 14 ms | 256 KB |
subtask3_45.txt | AC | 17 ms | 256 KB |
subtask3_46.txt | AC | 18 ms | 256 KB |
subtask3_47.txt | AC | 17 ms | 256 KB |
subtask3_48.txt | AC | 16 ms | 256 KB |
subtask3_49.txt | AC | 16 ms | 256 KB |
subtask3_50.txt | AC | 4 ms | 256 KB |
subtask3_51.txt | AC | 10 ms | 256 KB |
subtask3_52.txt | AC | 12 ms | 256 KB |
subtask3_53.txt | AC | 4 ms | 256 KB |
subtask3_54.txt | AC | 3 ms | 256 KB |
subtask3_55.txt | AC | 2 ms | 256 KB |
subtask3_56.txt | AC | 4 ms | 256 KB |
subtask3_57.txt | AC | 5 ms | 256 KB |
subtask3_58.txt | AC | 17 ms | 256 KB |
subtask3_59.txt | AC | 16 ms | 256 KB |
subtask3_60.txt | AC | 18 ms | 256 KB |
subtask3_61.txt | AC | 17 ms | 256 KB |
subtask3_62.txt | AC | 15 ms | 256 KB |
subtask3_63.txt | AC | 16 ms | 256 KB |
subtask3_64.txt | AC | 15 ms | 256 KB |
subtask3_65.txt | AC | 14 ms | 256 KB |