Submission #1132380

#TimeUsernameProblemLanguageResultExecution timeMemory
1132380StefanSebezStations (IOI20_stations)C++20
5 / 100
302 ms2848 KiB
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define ll long long
#define ld long double
const int N=1e5+50;
vector<int>E[N];
int in[N],nc=-1;
void DFS(int u,int parent=-1){
    in[u]=++nc;
    for(auto i:E[u]){
        if(i!=parent) DFS(i,u);
    }
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v){
    for(int i=0;i<n-1;i++){
        E[u[i]].pb(v[i]);
        E[v[i]].pb(u[i]);
    }
    int root=0;
    for(int i=0;i<n;i++){
        if(E[i].size()==1) root=i;
    }
    DFS(root);
    vector<int>lbl;for(int i=0;i<n;i++) lbl.pb(in[i]);
    for(int i=0;i<=n;i++) E[i].clear(),in[i]=0,nc=-1;
    return lbl;
}
int find_next_station(int s, int t, std::vector<int> c){
    /*int res=c[0];
    if(s<t){
        for(int i=0;i<c.size();i++){
            int u=c[i];
            if(u>s) res=u;
        }
    }
    else{
        for(int i=0;i<c.size();i++){
            int u=c[i];
            if(u<s) res=u;
        }
    }*/
    int res=0;
    if(t<s){
        for(auto i:c){
            if(i<s){
                res=i;
            }
        }
    }
    else{
        for(auto i:c){
            if(i<=t) 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...