Submission #309923

# Submission time Handle Problem Language Result Execution time Memory
309923 2020-10-05T01:43:00 Z tjdgus4384 Stations (IOI20_stations) C++14
0 / 100
1363 ms 2097156 KB
#include<bits/stdc++.h>
#include "stations.h"
using namespace std;
vector<int> path[1001], ret;
bool visited[1001];
int tsize[1001];

int dfs(int x){
    int s = 1;
    for(int i = 0;i < path[x].size();i++){
        if(visited[path[x][i]]) continue;
        visited[path[x][i]] = true;
        s += dfs(path[x][i]);
    }
    return tsize[x] = s;
}
void dfs2(int x, int s, int e, int d){
    if(d%2 == 0) {ret[x] = s; s++;}
    else ret[x] = e;
    for(int i = 0;i < path[x].size();i++){
        if(visited[path[x][i]]) continue;
        dfs2(path[x][i], s, s+tsize[path[x][i]]-1, d+1);
        s+=tsize[path[x][i]];
    }
}

vector<int> label(int n, int k, vector<int> u, vector<int> v){
    ret.clear();
    for(int i = 0;i < n;i++) path[i].clear();
    ret.resize(n);
    for(int i = 0;i < n-1;i++){
        path[u[i]].push_back(v[i]);
        path[v[i]].push_back(u[i]);
    }
    for(int i = 0;i < n;i++) visited[i] = false;
    visited[0] = true;
    dfs(0);
    for(int i = 0;i < n;i++) visited[i] = false;
    visited[0] = true;
    dfs2(0, 0, n-1, 0);
    return ret;
}

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

Compilation message

stations.cpp: In function 'int dfs(int)':
stations.cpp:10:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |     for(int i = 0;i < path[x].size();i++){
      |                   ~~^~~~~~~~~~~~~~~~
stations.cpp: In function 'void dfs2(int, int, int, int)':
stations.cpp:20:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |     for(int i = 0;i < path[x].size();i++){
      |                   ~~^~~~~~~~~~~~~~~~
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:48:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |         for(int i = 0;i < c.size() - 1;i++){
      |                       ~~^~~~~~~~~~~~~~
stations.cpp:54:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |         for(int i = 0;i < c.size();i++){
      |                       ~~^~~~~~~~~~
stations.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
   59 | }
      | ^
# Verdict Execution time Memory Grader output
1 Runtime error 1363 ms 2097156 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1318 ms 2097156 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1326 ms 2097156 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1033 ms 868 KB Output is correct
2 Runtime error 1326 ms 2097156 KB Execution killed with signal 9 (could be triggered by violating memory limits)
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1329 ms 2097156 KB Execution killed with signal 9 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -