Submission #8956033


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

using ll = long long;
const ll LLINF = 1LL << 58;
const int INF = 1 << 30;
using Edge = tuple<ll, int, int>;
const int dy[] = {0, 1, 0, -1}, dx[] = {1, 0, -1, 0};

int H, W, T;
string S[10];
int sx, sy;
// コストを保持する2次元配列
ll v[10][10];

// ダイクストラ法
ll check(int cost) {
  fill_n(*v, 10 * 10, LLINF);
  priority_queue<Edge, vector<Edge>, greater<Edge>> que;
  que.emplace(0, sx, sy);
  while (!que.empty()) {
    int x, y;
    ll z;
    tie(z, x, y) = que.top();
    que.pop();
    if (S[y][x] == 'G') return z;
    // 4方向を調べる
    for (int i = 0; i < 4; i++) {
      // ny:=次のノードのy座標、nx:=次のノードのx座標
      int ny = y + dy[i], nx = x + dx[i];
      if (nx < 0 || ny < 0 || nx >= W || ny >= H) continue;
      // nc:=次のノードへのコスト
      ll nc = z;
      // 黒マスならコストcostがかかる
      if (S[ny][nx] == '#') nc += cost;
      // そうでなければコスト1がかかる
      else
        nc += 1;
      // 保持しているコストのほうが今のコスト以下なら以下の処理をスキップ
      if (v[nx][ny] <= nc) continue;
      v[nx][ny] = nc;
      que.emplace(nc, nx, ny);
    }
  }
}

int main() {
  cin >> H >> W >> T;
  for (int i = 0; i < H; i++) {
    cin >> S[i];
    for (int j = 0; j < W; j++) {
      if (S[i][j] == 'S') sx = j, sy = i;
    }
  }

  // 二分探索
  // T秒以内にゴール地点に到着できる最大の正整数を探す
  int low = 1, high = INF;
  while (high - low > 0) {
    int mid = (low + high + 1) >> 1;
    if (check(mid) <= T)
      low = mid;
    else
      high = mid - 1;
  }
  cout << low << endl;
}

Submission Info

Submission Time
Task C - 壁抜け
User foobar256
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1796 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 40 / 40 30 / 30 30 / 30
Status
AC × 3
AC × 16
AC × 42
AC × 68
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 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 256 KB
subtask0_sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt AC 1 ms 256 KB
subtask1_08.txt AC 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt AC 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt AC 1 ms 256 KB
subtask2_16.txt AC 1 ms 256 KB
subtask2_17.txt AC 1 ms 256 KB
subtask2_18.txt AC 1 ms 256 KB
subtask2_19.txt AC 1 ms 256 KB
subtask2_20.txt AC 1 ms 256 KB
subtask2_21.txt AC 1 ms 256 KB
subtask2_22.txt AC 1 ms 256 KB
subtask2_23.txt AC 1 ms 256 KB
subtask2_24.txt AC 1 ms 256 KB
subtask2_25.txt AC 1 ms 256 KB
subtask2_26.txt AC 1 ms 256 KB
subtask2_27.txt AC 1 ms 256 KB
subtask2_28.txt AC 1 ms 256 KB
subtask2_29.txt AC 1 ms 256 KB
subtask2_30.txt AC 1 ms 256 KB
subtask2_31.txt AC 1 ms 256 KB
subtask2_32.txt AC 1 ms 256 KB
subtask2_33.txt AC 1 ms 256 KB
subtask2_34.txt AC 1 ms 256 KB
subtask2_35.txt AC 1 ms 256 KB
subtask2_36.txt AC 1 ms 256 KB
subtask2_37.txt AC 1 ms 256 KB
subtask2_38.txt AC 1 ms 256 KB
subtask2_39.txt AC 1 ms 256 KB
subtask2_40.txt AC 1 ms 256 KB
subtask3_41.txt AC 1 ms 256 KB
subtask3_42.txt AC 1 ms 256 KB
subtask3_43.txt AC 1 ms 256 KB
subtask3_44.txt AC 1 ms 256 KB
subtask3_45.txt AC 1 ms 256 KB
subtask3_46.txt AC 1 ms 256 KB
subtask3_47.txt AC 1 ms 256 KB
subtask3_48.txt AC 1 ms 256 KB
subtask3_49.txt AC 1 ms 256 KB
subtask3_50.txt AC 1 ms 256 KB
subtask3_51.txt AC 1 ms 256 KB
subtask3_52.txt AC 1 ms 256 KB
subtask3_53.txt AC 1 ms 256 KB
subtask3_54.txt AC 1 ms 256 KB
subtask3_55.txt AC 1 ms 256 KB
subtask3_56.txt AC 1 ms 256 KB
subtask3_57.txt AC 1 ms 256 KB
subtask3_58.txt AC 1 ms 256 KB
subtask3_59.txt AC 1 ms 256 KB
subtask3_60.txt AC 1 ms 256 KB
subtask3_61.txt AC 1 ms 256 KB
subtask3_62.txt AC 1 ms 256 KB
subtask3_63.txt AC 1 ms 256 KB
subtask3_64.txt AC 1 ms 256 KB
subtask3_65.txt AC 1 ms 256 KB