제출 #1194344

#제출 시각아이디문제언어결과실행 시간메모리
1194344simona1230기지국 (IOI20_stations)C++20
0 / 100
319 ms5260 KiB
#include "stations.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> g[200001];
vector<int> l;
int num=0;
int lf[200001],rt[200001];

void dfs(int i,int p)
{
    lf[i]=num++;
    for(int j=0;j<g[i].size();j++)
    {
        int nb=g[i][j];
        if(nb==p)continue;
        dfs(nb,i);
    }
    rt[i]=num-1;
    l[i]=lf[i]*1000+rt[i];
}

std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v)
{
    l.clear();
    for(int i=0;i<n;i++)
        l.push_back(0);
    for(int i=0; i<n; i++)
        g[i].clear();
    for(int i=0; i<n-1; i++)
        g[u[i]].push_back(v[i]),g[v[i]].push_back(u[i]);

    dfs(0,-1);
    return l;
}

int find_next_station(int s, int t, std::vector<int> c)
{
    int l1=s/10000,r1=s%10000;
    int l2=t/10000,r2=t%10000;
    if(r1-l1>r2-l2)
    {
        for(int i=0;i<c.size();i++)
        {
            int cl=c[i]/10000;
            int cr=c[i]%10000;
            if(cr-cl>r1-l1)continue;

            if(cl<=l2&&r2<=cr)return c[i];
        }
    }

    for(int i=0;i<c.size();i++)
    {
        int cl=c[i]/10000;
        int cr=c[i]%10000;
        if(cr-cl>r1-l1)return c[i];
    }
}

컴파일 시 표준 에러 (stderr) 메시지

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