Submission #1168725

#TimeUsernameProblemLanguageResultExecution timeMemory
1168725aycnl기지국 (IOI20_stations)C++20
0 / 100
298 ms520 KiB
#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;

#define ii pair <int, int>
#define ff first
#define ss second
#define bit(i) (1 << (i))

#define fto(i, a, b) for (int i = (a); i <= (b); ++i)
#define fdto(i, a, b) for (int i = (a); i >= (b); --i)
#define flto(i, a, b) for (int i = (a); (1 << i) <= (b); ++i)

#define pb push_back
#define pf push_front

#define endl "\n"
#define oo (int)(998244353)
#define maxN 1005

#define l(s) s.length()

#define vi vector <int>
#define vii vector <ii>

#define fat(x, y) for (auto x : y)
#define fit(x, y) for (int x : y)
#define fiit(x, y) for (ii x : y)

#define EPS 1e-9
#define pi (acos(-1))
#define ll long long

int tme;
vi ke[maxN];
int pos[maxN];

void dfs(int u, int par) {
    pos[u] = tme++;
    for (int v : ke[u]) if (v != par) {
        dfs(v, u);
    }
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
    tme = 0;
    fto(i, 0, n-1) ke[i].clear();
    fto(i, 0, n-2) {
        ke[u[i]].pb(v[i]);
        ke[v[i]].pb(u[i]);
    }
    dfs(0, -1);
    vi res;
    fto(i, 0, n-1) res.pb(pos[i]);

    return res;
}

int find_next_station(int s, int t, std::vector<int> c) {
    if (t < s) return c[0];
    int sz = int(c.size());

    int i = 1 + (c[0] < s);
    while (1) {
        if (i == sz || c[i] > t) return c[i-1];
        ++i;
    }
    return c[0];
}
#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...