Submission #836233

#TimeUsernameProblemLanguageResultExecution timeMemory
836233unnickCity Mapping (NOI18_citymapping)C++14
32 / 100
2 ms516 KiB
#include "citymapping.h"

#include <algorithm>
#include <numeric>
#include <vector>

using namespace std;

#define ll long long

void find_roads(int N, int Q, int A[], int B[], int W[]) {
	int start;
	{
		ll maxd = 0;
		for (int i = 2; i <= N; i++) {
			ll d = get_distance(1, i);
			if (d > maxd) {
				maxd = d;
				start = i;
			}
		}
	}
	vector<ll> dists(N);
	dists[start-1] = 0;
	vector<int> ids(N);
	iota(ids.begin(), ids.end(), 0);
	for (int i = 1; i <= N; i++) {
		if (i == start) continue;
		dists[i-1] = get_distance(start,i);
	}
	sort(ids.begin(), ids.end(), [&](int a, int b) {
		return dists[a] < dists[b];
	});
	for (int i = 0; i < N-1; i++) {
		A[i] = ids[i]+1;
		B[i] = ids[i+1]+1;
		W[i] = dists[ids[i+1]] - dists[ids[i]];
	}
}

Compilation message (stderr)

citymapping.cpp: In function 'void find_roads(int, int, int*, int*, int*)':
citymapping.cpp:29:28: warning: 'start' may be used uninitialized in this function [-Wmaybe-uninitialized]
   29 |   dists[i-1] = get_distance(start,i);
      |                ~~~~~~~~~~~~^~~~~~~~~
#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...