Submission #1292697

#TimeUsernameProblemLanguageResultExecution timeMemory
1292697lucasdmyStations (IOI20_stations)C++20
0 / 100
393 ms608 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>labels(n);
    for(int k=0;k<n;k++){
        labels[k]=aux[k];
        inv[labels[k]]=k;
    }
    return labels;
} 
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];
        }
    }*/
    return 0;
}
/*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;
    }
}*/
#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...