이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define pb push_back
#define int long long
using namespace std;
typedef pair < int, int > ii;
const int maxn = 1e5+10, maxm = 5e5+10;
int n, m, q, k;
int npp[maxn], vist[maxn];
vector < ii > grafo[maxn];
int bfs(int x)
{
priority_queue < ii, vector < ii >, greater < ii > > fila;
fila.push({0, x});
while(fila.size())
{
ii aux = fila.top();
fila.pop();
int u = aux.second;
int val = aux.first;
vist[u] = 1;
if(npp[u]) return val;
for(ii y : grafo[u])
{
int v = y.first;
int cst = y.second;
if(vist[v]) continue;
fila.push({val+cst, v});
}
}
}
int32_t main()
{
cin >> n >> m;
for(int i = 1 ; i <= m ; i++)
{
int a, b, c;
cin >> a >> b >> c;
grafo[a].pb({b, c});
grafo[b].pb({a, c});
}
cin >> k;
for(int i = 1 ; i <= k ; i++)
{
int a;
cin >> a;
npp[a] = 1;
}
cin >> q;
for(int i = 1 ; i <= q ; i++)
{
int s, t;
cin >> s >> t;
memset(vist, 0, sizeof vist);
int a = bfs(s);
memset(vist, 0, sizeof vist);
int b = bfs(t);
cout << min(a, b) << "\n";
}
}
컴파일 시 표준 에러 (stderr) 메시지
plan.cpp: In function 'long long int bfs(long long int)':
plan.cpp:43:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
# | 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... |