#include "stations.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
int cnt=0;
int dfs(vector<int>&labels,vector<bool>&visited,vector<vector<int>>&adj,int nodo){
cnt++;
int maxi=cnt;
visited[nodo]=true;
for(int j=0;j<adj[nodo].size();j++){
if(visited[adj[nodo][j]])continue;
maxi=max(maxi,dfs(labels,visited,adj,adj[nodo][j]));
}
labels[nodo]=(cnt*1000)+maxi;
return labels[nodo];
}
std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) {
std::vector<int> labels(n);
cnt=0;
for (int i = 0; i < n; i++) {
labels[i] = i;
}
vector<int> indegree(n,0);
vector<vector<int>> adj(n,vector<int>(0,0));
for(int i=0;i<u.size();i++){
adj[u[i]].push_back(v[i]);
adj[v[i]].push_back(u[i]);
indegree[u[i]]++;
indegree[v[i]]++;
}
stack<int> st;
for(int i=0;i<n;i++){
if(indegree[i]==1){
st.push(i);
break;
}
}
vector<bool> visited(n,false);
dfs(labels,visited,adj,st.top());
return labels;
}
int find_next_station(int s, int t, std::vector<int> c) {
for(int i=0;i<c.size();i++){
string str=to_string(c[i]);
if (str.size() <= 3) continue;
int start=0,end=0;
string starts = str.substr(0, str.size() - 3);
string ends = str.substr(str.size() - 3);
if (starts.empty()) start = 0;
else start = stoi(starts);
if (ends.empty()) end = 0;
else end = stoi(ends);
if(start<=t && t<=end)return c[i];
}
}
컴파일 시 표준 에러 (stderr) 메시지
stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)':
stations.cpp:61:1: warning: control reaches end of non-void function [-Wreturn-type]
61 | }
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |