제출 #449610

#제출 시각아이디문제언어결과실행 시간메모리
449610Karliver악어의 지하 도시 (IOI11_crocodile)C++14
46 / 100
145 ms262148 KiB
#include "crocodile.h"
  
#include <bits/stdc++.h>

#define FIXED_FLOAT(x)  std::fixed <<std::setprecision(20) << (x)
#define all(v) (v).begin(), (v).end()
using namespace  std;
#define forn(i,n) for (int i = 0; i < (n); ++i)
#define rforn(i, n) for(int i = (n) - 1;i >= 0;--i)
using ll = long long;
int mod = (ll)1e9 + 7;
#define PI acos(-1)
typedef pair<int, int> pairs;

const ll INF = 1e9 + 100;
const int N = 2000;
const double eps = 1e-7;

template <class T> using V = vector<T>;  
template <class T> using VV = V<V<T>>;  

template <typename XPAX>
void ckma(XPAX &x, XPAX y) {
    x = (x < y ? y : x);
}
template <typename XPAX>
void ckmi(XPAX &x, XPAX y) {
    x = (x > y ? y : x);
}


V<pairs> g[N];

int travel_plan(int n, int m, int R[][2], int L[], int K, int P[])
{
  forn(i, m) {
    g[R[i][0]].emplace_back(R[i][1], L[i]);
    g[R[i][1]].emplace_back(R[i][0], L[i]);
  }

  V<bool> exit(n, false);
  forn(i, K) exit[P[i]] = 1;
  V<int> dp1(n, INF), dp2(n, INF);
  function<void(int, int)>dfs = [&](int v, int p) {
    if(exit[v]) {
      dp1[v] = 0;
      dp2[v] = 0;
      return;
    }

    for(auto [c, w] : g[v]) {
      if(c == p) continue;
      dfs(c, v);
      int x = w + dp2[c];
      if(x < dp1[v]) {
        swap(dp1[v], dp2[v]);
        dp1[v] = x;

      }
      else if(x < dp2[v]) dp2[v] = x;
    }
  };

  dfs(0, -1);
  return dp2[0];


}

컴파일 시 표준 에러 (stderr) 메시지

crocodile.cpp: In lambda function:
crocodile.cpp:51:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   51 |     for(auto [c, w] : g[v]) {
      |              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...