Submission #838294

#TimeUsernameProblemLanguageResultExecution timeMemory
838294JakobZorzStations (IOI20_stations)C++14
0 / 100
684 ms548 KiB
#include"stations.h"
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;

vector<int>labels;
int n;
vector<int>nodes[1000];
int curr_label;

void dfs(int node,int par){
    for(int ne:nodes[node]){
        if(ne==par)
            continue;
        dfs(ne,node);
    }
    labels[node]=curr_label++;
}

vector<int>label(int N,int k,vector<int>u,vector<int>v){
    n=N;
    labels.resize(n);
    for(int i=0;i<n;i++)
        nodes[i].clear();
    curr_label=0;
    for(int i=0;i<n-1;i++){
        nodes[u[i]].push_back(v[i]);
        nodes[v[i]].push_back(u[i]);
    }
    
    dfs(0,0);
	
	return labels;
}

int find_next_station(int s,int t,vector<int>c){
    sort(c.begin(),c.end());
    /*cout<<"s "<<s<<endl;
    cout<<"t "<<t<<endl;
    cout<<"arr ";
    for(int i:c)
        cout<<i<<" ";
    cout<<endl;*/
    
    if(s==t)
        return s;
    
    for(int i=0;i<(int)c.size()-1;i++){
        if(c[i]<=t&&t<c[i+1])
            return c[i];
    }
    return c.back();
}
#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...