Submission #550593

#TimeUsernameProblemLanguageResultExecution timeMemory
550593krit3379Stations (IOI20_stations)C++17
0 / 100
3120 ms1329236 KiB
#include<bits/stdc++.h>
using namespace std;
#include"stations.h"
#define N 100005

int st[N],en[N],sz;
vector<int> g[N];

void dfs(int s,int f){
    st[s]=++sz;
    for(auto x:g[s]){
        if(x==f)continue;
        dfs(x,s);
    }
    en[s]=sz;
}

vector<int> label(int n, int k, vector<int> u, vector<int> v){
    int i,a,b;
    vector<int> vec;
    vec.push_back(0);
    for(i=0;i<=n;i++)g[i].clear();
    for(i=1;i<n;i++){
        a=u[i],b=v[i];
        g[a].push_back(b);
        g[b].push_back(a);
        vec.push_back(i);
    }
    sz=0;
    dfs(0,-1);
    return vec;
}

int find_next_station(int s, int t,vector<int> c){
    if(st[s]<=st[t]&&st[t]<=en[s])for(auto x:c)if(st[x]<=st[t]&&st[t]<=en[x])return x;
    else for(auto x:c)if(st[x]<st[s])return x;
}

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:35:7: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   35 |     if(st[s]<=st[t]&&st[t]<=en[s])for(auto x:c)if(st[x]<=st[t]&&st[t]<=en[x])return x;
      |       ^
stations.cpp:37:1: warning: control reaches end of non-void function [-Wreturn-type]
   37 | }
      | ^
#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...