답안 #434228

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
434228 2021-06-20T18:43:49 Z Kanaifu 기지국 (IOI20_stations) C++14
0 / 100
1073 ms 676 KB
#include <bits/stdc++.h>
#include "stations.h"

using namespace std;
#define pb push_back

vector<vector<int>> adj;
vector <int> in;
vector <int> out;
int vis[1001];
int cnt = -1;

void dfs (int node)
{
    cnt++;
    in[node] = cnt;
    vis[node] = true;
    for (int next : adj[node])
    {
        if (!vis[next])
        {
            dfs(next);
        }
    }
    out[node] = cnt;
    return ;
}

bool check(int lab1, int lab2)
{
    int cur_in = lab1/1000;
    int cur_out = lab1%1000;
    int des_in = lab2/1000;
    int des_out = lab2%1000;
    if (cur_in < des_in and des_in <= cur_out)
    {
        return true;
    }
    else
    {
        return false;
    }
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v)
{
    in.resize(n+1);
    out.resize(n+1);
    adj.resize(n+1);
    memset (vis,0,sizeof(vis));
    vector <int> labels;
	for (int i = 0; i < n-1; i++)
    {
		adj[u[i]].pb(v[i]);
        adj[v[i]].pb(u[i]);
	}
	dfs(0);
	for (int i=0; i<n; i++)
    {
        labels.pb(in[i]*1000 + out[i]);
    }
	return labels;
}

int find_next_station(int s, int t, std::vector<int> c)
{
    if (check(s, t))
    {
        for (int child : c)
        {
            if (child==t)
            {
                return child;
            }
            if (check(child, s))
            {
                continue;
            }
            if (check(child, t))
            {
                return child;
            }
        }
    }
    else
    {
        for (int child : c)
        {
            if (child==t)
            {
                return child;
            }
            if (check(child, s))
            {
                return child;
            }
        }
    }
    return c[0];
}

/*
1
5 10000000
0 1
1 2
1 3
2 4
2
2 0 1
1 3 3

*/

Compilation message

stations.cpp: In function 'bool check(int, int)':
stations.cpp:34:9: warning: unused variable 'des_out' [-Wunused-variable]
   34 |     int des_out = lab2%1000;
      |         ^~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 456 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 676 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 584 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1073 ms 400 KB Output is correct
2 Incorrect 691 ms 400 KB Wrong query response.
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 676 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -