Submission #1292684

#TimeUsernameProblemLanguageResultExecution timeMemory
1292684lucasdmyStations (IOI20_stations)C++20
0 / 100
393 ms600 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN=1010;
vector<int>graph[MAXN], aux(MAXN), sub_size(MAXN), inv(MAXN);
int c=0;
void dfs(int x, int p){
    aux[x]=c;
    c++;
    sub_size[x]=0;
    for(int k=0;k<graph[x].size();k++){
        int neighbour=graph[x][k];
        if(neighbour!=p){
            dfs(neighbour, x);
            sub_size[x]+=1+sub_size[neighbour];
        }
    }
}
vector<int>label(int n, int m, vector<int>a, vector<int>b){
    for(int k=0;k<n;k++){
        graph[k].clear();
    }
    for(int k=0;k<n-1;k++){
        graph[a[k]].push_back(b[k]);
        graph[b[k]].push_back(a[k]);
    }
    dfs(0, 0);
    vector<int>l(n);
    for(int k=0;k<n;k++){
        l[k]=aux[k];
        inv[l[k]]=k;
    }
    return l;
} 
int find_next_station(int at, int end, vector<int>adj){
    if(end>at+sub_size[inv[at]] or end<at){
        return adj[0];
    }
    for(int k=adj.size()-1;k>0;k--){
        if(end>=adj[k]){
            return adj[k];
        }
    }
}
/*int main(){
    int n, m;
    cin>>n>>m;
    vector<int>a(n-1), b(n-1);
    for(int k=0;k<n-1;k++){
        cin>>a[k];
    }
    for(int k=0;k<n-1;k++){
        cin>>b[k];
    }
    label(n, m, a, b);
    for(int k=0;k<n;k++){
        cout<<sub_size[k]<<' ';
    }
    cout<<endl;
    int q;
    cin>>q;
    int at, end;
    for(int k=0;k<q;k++){
        cin>>at>>end;
        vector<int>adj;
        for(int i=0;i<graph[at].size();i++){
            adj.push_back(graph[at][i]);
        }
        sort(adj.begin(), adj.end());
        cout<<find_next_station(at, end, adj)<<endl;
    }
}*/

Compilation message (stderr)

stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:44:1: warning: control reaches end of non-void function [-Wreturn-type]
   44 | }
      | ^
#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...