Submission #1317133

#TimeUsernameProblemLanguageResultExecution timeMemory
1317133AgageldiCrocodile's Underground City (IOI11_crocodile)C++20
46 / 100
196 ms327680 KiB
#include "bits/stdc++.h"
#include "crocodile.h"
// #include "grader.cpp"
using namespace std;

#define MAXN 500005
#define ll long long
#define ff first
#define ss second

ll p[MAXN], n, a[MAXN];
vector <pair<int,int>> E[MAXN];
void dfs(int x,int par) {
  int x1 = INT_MAX, x2 = INT_MAX;
  for(auto i : E[x]) {
    if(i.ff == par) continue;
    if((int)E[i.ff].size() > 1)dfs(i.ff, x);
    if(x1 > i.ss + a[i.ff]) {
      x1 = i.ss + a[i.ff];
    }
    if(x2 > x1) swap(x1, x2);
  }
  a[x] = x1;
}

int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]){
  for(int i = 0;i < M; i++) {
    // cout << R[i][0] << " " << R[i][1] << "\n";
    // continue;
    E[R[i][0]].push_back({R[i][1],L[i]});
    E[R[i][1]].push_back({R[i][0],L[i]});
  }
  // return 0;
  for(int i = 0; i < K; i++) {
    p[P[i]] = 1; 
  }
  dfs(0, -1);
  return a[0];
}


#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...