Submission #1342708

#TimeUsernameProblemLanguageResultExecution timeMemory
1342708yc11자매 도시 (APIO20_swap)C++20
0 / 100
0 ms344 KiB
#include<bits/stdc++.h>
#include "swap.h"
using namespace std;
vector<pair<int,int> > p;
vector<int> depth;
vector<vector<pair<int,int> > > n1;
vector<pair<int,pair<int,int> > > hi;
void dfs(int x, int pa){
    for (int i = 0;i<n1[x].size();i++){
        if (n1[x][i].first==pa) continue;
        depth[n1[x][i].first] = depth[x]+1;
        p[n1[x][i].first] = make_pair(x,n1[x][i].second);
        dfs(n1[x][i].first,x);
    }
    }
void init(int N, int M,
          std::vector<int> U, std::vector<int> V, std::vector<int> W) {
    n1.resize(N);
    depth.resize(N);

    for (int i = 0;i<M;i++){
        int a = U[i];
    int b = V[i];
    int c = W[i];
        n1[a].push_back(make_pair(b,c));
        n1[b].push_back(make_pair(a,c));
        hi.push_back(make_pair(c,make_pair(a,b)));
    }
    sort(hi.begin(),hi.end());
    depth.assign(N,1);
    depth[0] = 0;
}

int getMinimumFuelCapacity(int X, int Y) {
    if (X==0) return -1;
    int ans = max(n1[X][0].second,n1[Y][0].second);
    for (int i = 0;i<hi.size();i++){
        if (hi[i].second.first == X) continue;
        ans = max(hi[i].first,ans);
        break;
    }
    return ans;


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