Submission #1132371

#TimeUsernameProblemLanguageResultExecution timeMemory
1132371StefanSebezStations (IOI20_stations)C++20
0 / 100
3053 ms2162688 KiB
#include <bits/stdc++.h>
#include "stations.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 n;
int in[N],tajm=-1;
void DFS(int u,int parent=-1){
    in[u]=++tajm;
    for(auto i:E[u]) if(i!=parent) DFS(i,u);
}
std::vector<int> label(int n1, int k, std::vector<int> u, std::vector<int> v){
    n=n1;
    for(int i=0;i<u.size();i++) E[u[i]].pb(v[i]),E[v[i]].pb(u[i]);
    int rt=0;
    for(int i=0;i<n;i++) if(E[i].size()==1) rt=i;
    DFS(rt);
    //for(int i=0;i<n;i++) printf("%i ",in[i]);printf("\n");
    vector<int>lbl;for(int i=0;i<n;i++) lbl.pb(in[i]);
    //for(auto i:lbl) printf("%i ",i);printf("\n");
    return lbl;
}
int find_next_station(int s, int t, std::vector<int> c){
    int res=0;
    if(s<t){
        for(auto i:c){
            if(i>=s) res=i;
        }
    }
    else{
        for(auto i:c){
            if(i<=s) res=i;
        }
    }
    return res;
    /*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...