Submission #546474

#TimeUsernameProblemLanguageResultExecution timeMemory
546474HanksburgerCrocodile's Underground City (IOI11_crocodile)C++17
46 / 100
4 ms3056 KiB
#include "crocodile.h"
#include <bits/stdc++.h>
using namespace std;
vector<pair<int, long long> > adj[100005];
bool exits[100005], visited[100005];
long long dist[100005];
void dfs(int u)
{
	if (exits[u])
		return;
	visited[u]=1;
	long long min1=1e18, min2=1e18;
	for (int i=0; i<adj[u].size(); i++)
	{
		int v=adj[u][i].first;
		long long w=adj[u][i].second;
		if (visited[v])
			continue;
		dfs(v);
		if (min1>dist[v]+w)
		{
			min2=min1;
			min1=dist[v]+w;
		}
		else if (min2>dist[v]+w)
			min2=dist[v]+w;
	}
	dist[u]=min2;
}
int travel_plan(int N, int M, int R[][2], int L[], int K, int P[])
{
	for (int i=0; i<M; i++)
	{
		int u=R[i][0], v=R[i][1], w=L[i];
		adj[u].push_back({v, w});
		adj[v].push_back({u, w});
	}
	for (int i=0; i<K; i++)
		exits[P[i]]=1;
	dfs(0);
	return dist[0];
}

Compilation message (stderr)

crocodile.cpp: In function 'void dfs(int)':
crocodile.cpp:13:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |  for (int i=0; i<adj[u].size(); i++)
      |                ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...