Submission #159223

#TimeUsernameProblemLanguageResultExecution timeMemory
159223sofhiasouzaEvacuation plan (IZhO18_plan)C++14
10 / 100
4025 ms15248 KiB
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
typedef pair < int, int > ii;

const int maxn = 1e5+10, maxm = 5e5+10;

int n, m, q, k;

bool npp[maxn], vist[maxn];

map < int, int > mapa[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});
		}
	}
}

int main()
{
	cin >> n >> m;

	memset(npp, false, sizeof npp);

	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] = true;
	}

	cin >> q;

	for(int i = 1 ; i <= q ; i++)
	{
		int s, t;
		cin >> s >> t;

		memset(vist, false, sizeof vist);

		int a = bfs(s);

		memset(vist, false, sizeof vist);

		int b = bfs(t);

		cout << min(a, b) << "\n";
	}
}

Compilation message (stderr)

plan.cpp: In function 'int bfs(int)':
plan.cpp:44:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...