제출 #1244539

#제출 시각아이디문제언어결과실행 시간메모리
1244539qwusha기지국 (IOI20_stations)C++20
5 / 100
305 ms516 KiB

#include "stations.h"

#include <iostream>
#include <bits/stdc++.h>

#define fi first
#define se second

using namespace std;

int inf = 1e9 + 7;

vector<vector<int>> g;

vector<int> label(int n, int k, vector<int> v, vector<int> u) {
    g.assign(n, {});
    int end = -1, end2 = -1;
    for (int i = 0; i < n - 1; i++) {
        g[v[i]].push_back(u[i]);
        g[u[i]].push_back(v[i]);
    }
    for (int i = 0; i < n; i++) {
        if ( g[i].size() == 1 && end == -1) {
            end = i;
        } else if (g[i].size() == 1) {
            end2 = i;
        }
    }
    int cur = end;
    vector<int> res(n);
    int num = 0;
    int last = 0;
    while (cur != end2) {
        res[cur] = num;
        num++;
        if (cur == end) {
            last = cur;
            cur = g[cur][0];
        } else {
            int tr = cur;
            cur = g[cur][0] + g[cur][1] - last;
            last = tr;
        }
    }
    res[cur] = num;
    return res;
}

int find_next_station(int s, int t, vector<int> c) {
    if (c.size() == 1) {
        return c[0];
    }
    if (t > s) {
        return max(c[0], c[1]);
    } else {
        return min(c[0], c[1]);
    }
}


#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...