답안 #548815

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
548815 2022-04-14T12:25:56 Z usukhbaatar City Mapping (NOI18_citymapping) C++14
컴파일 오류
0 ms 0 KB
#include "citymapping.h"
#include <vector>
#include <algorithm>
using namespace std;

int p[100001];

int _find(int x) {
	if (p[x] == x) return x;
	return p[x] = _find(p[x]);
}

bool _union(int x, int y) {
	x = _find(x);
	y = _find(y);
	if (x == y) return false;
	p[x] = y;
	return true;
}

void find_roads(int N, int Q, int A[], int B[], int W[]) {
	vector<pair<int, pair<int, int>>> e;
	int xx = 0;
	for (int i = 0; i < N; i++) {
		p[i] == i;
	}
	for (int i = 1; i <= N; i++) {
		for (int j = i + 1; j <= N; j++) {
			int temp = get_distance(i, j);
			if (temp == 1) {
				if (_merge(i, j)) {
					A[xx] = i;
					B[xx] = j;
					W[xx] = 1;
					xx++;
				}
			} else {
				e.push_back({temp, {i, j}});
				e.push_back({temp, {j, i}});
			}
		}
	}
	if (xx == N - 1) return;
	sort(e.begin(), e.end());
	
	for (int i = 0; i < e.size(); i++) {
		int u = e[i].second.first;
		int v = e[i].second.second;
		if (_union(u, v)) {
			A[xx] = u;
			A[xx] = v;
			W[xx] = e[i].first
		}
	}
	return;
}

Compilation message

citymapping.cpp: In function 'void find_roads(int, int, int*, int*, int*)':
citymapping.cpp:25:8: warning: statement has no effect [-Wunused-value]
   25 |   p[i] == i;
      |   ~~~~~^~~~
citymapping.cpp:31:9: error: '_merge' was not declared in this scope
   31 |     if (_merge(i, j)) {
      |         ^~~~~~
citymapping.cpp:46:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, std::pair<int, int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |  for (int i = 0; i < e.size(); i++) {
      |                  ~~^~~~~~~~~~
citymapping.cpp:52:22: error: expected ';' before '}' token
   52 |    W[xx] = e[i].first
      |                      ^
      |                      ;
   53 |   }
      |   ~