Submission #1237689

#TimeUsernameProblemLanguageResultExecution timeMemory
1237689karelStations (IOI20_stations)C++20
0 / 100
2 ms588 KiB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define all(a) begin(a), end(a)
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> ii;
typedef vector<ii> vii;

vvi edges;
int c = 0;
vector<int> labels;
vi visited;

void dfs(int at, int from)
{
    visited[at] = true;
    labels[at] = c;
    for(auto to: edges[at])
    {
        if(to != from)
        {
            if(!visited[to])
                dfs(to, at);
        }
    } 
    labels[at] += 1000 * c++;
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {

    edges.resize(n);
    labels.resize(n);
    visited.resize(n, false);

    for(int i = 0; i < u.size(); i++)
    {
        edges[u[i]].push_back(v[i]);
        edges[v[i]].push_back(u[i]);
    }

    dfs(0, -1);

	return labels;
}


int find_next_station(int s, int t, std::vector<int> c) {
    int as = s / 1000, bs = s % 1000;
    int at = s / 1000, bt = s % 1000;

    if(at > as || at < bs)
        return c.back();

    for(auto v: c)
    {
        int av = v/1000, bv = v % 1000;
        if(at <= av && at >= bv)
            return v;
    }    

}

Compilation message (stderr)

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