Submission #1155838

#TimeUsernameProblemLanguageResultExecution timeMemory
1155838AlgorithmWarriorStations (IOI20_stations)C++20
69.87 / 100
303 ms576 KiB
#include "stations.h"
#include <cstdio>
#include <cassert>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

void dfs(int nod,int tata,bool tip,vector<int>&labels,vector<vector<int>>&tree){
    static int time=-1;
    if(tip)
        labels[nod]=++time;
    for(auto fiu : tree[nod])
        if(fiu!=tata)
            dfs(fiu,nod,!tip,labels,tree);
    if(!tip)
        labels[nod]=++time;
}

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

int find_next_station(int s,int t,vector<int>c) {
    if(s>c.back()){
        if(t<c[0] || t>s)
            return c[0];
        int i;
        for(i=(int)c.size()-1;i>=0;--i)
            if(c[i]<=t)
                return c[i];
    }
    else{
        if(t<s || t>c.back())
            return c.back();
        int i;
        for(i=0;i<(int)c.size();++i)
            if(c[i]>=t)
                return c[i];
    }
}

Compilation message (stderr)

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