제출 #885868

#제출 시각아이디문제언어결과실행 시간메모리
885868MaaxleCrocodile's Underground City (IOI11_crocodile)C++14
0 / 100
184 ms262144 KiB
#include "crocodile.h"
#include <bits/stdc++.h>

#define range(it, a, b) for (ll it = a; it < b; it++)
#define all(x) begin(x), end(x)
#define ll long long
#define ull unsigned long long
#define uset unordered_set
#define umap unordered_map 

using namespace std;

vector<vector<int>> adj;
vector<int> memo;

int dfs (int i) {
  if (memo[i] != (1 << 30)) return memo[i];

  int mini, smini;
  mini = smini = (1 << 30);
  for (int k : adj[i]) {
    int x;
    x = (memo[k] == (1 << 30) ? dfs(k) : memo[k]);
    if (x < mini) {
      smini = mini;
      mini = x;
    }
    else smini = min(x, smini);
  }
  return (memo[i] = smini);
}

int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]) {
  adj.resize(N);
  memo.resize(N, (1 << 30));

  range(i, 0, M) {
    adj[R[i][0]].push_back(R[i][1]);
    adj[R[i][1]].push_back(R[i][0]);
  }

  range(i, 0, K) {
    memo[P[i]] = 0;
  }
  return dfs(0);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...