제출 #1147857

#제출 시각아이디문제언어결과실행 시간메모리
1147857FaresSTH기지국 (IOI20_stations)C++20
0 / 100
301 ms532 KiB
#include "bits/stdc++.h"
using namespace std;
#define mp make_pair
#define S second
#define F first
vector<int> adj[1000];
int dt[1000], t;

void dfs(int i) {
    dt[i] = ++t;
    for (int j : adj[i]) {
        if (dt[j]) continue;
        dfs(j);
    }
}

vector<int> label(int n, int k, vector<int> u, vector<int> v) {
    for (int i = 0; i < n - 1; i++) {
        adj[u[i]].push_back(v[i]);
        adj[v[i]].push_back(u[i]);
    }
    int rt = 0; for (int i = 0; i < n; i++) if (adj[i].size() == 1) rt = i;
    dfs(rt); vector<int> res;
    for (int i = 0; i < n; i++) {
        res.push_back(dt[i] - 1);
        adj[i].clear();
        dt[i] = 0;
        t = 0;
    }
    return res;
}

int find_next_station(int s, int t, vector<int> c) {
    int res;
    if (s < t) for (int i : c) if (i > s) res = i;
    else for (int i : c) if (i < s) res = i;
    return res;
}
#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...