제출 #1361878

#제출 시각아이디문제언어결과실행 시간메모리
1361878stuckinpandemicICC (CEOI16_icc)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "icc.h"
using namespace std;

#define endl "\n"
#define pii pair<int, int>
#define piv pair<int, vector<pii>>

class DSU {
  public:
	vector<int> parents;
	vector<int> sizes;
	int comp;

	DSU(int size) : parents(size), sizes(size, 1) {
		for (int i = 0; i < size; i++) { parents[i] = i; }
		comp = size;
	}

	/** @return the "representative" node in x's component */
	int find(int x) { return parents[x] == x ? x : (parents[x] = find(parents[x])); }

	/** @return whether the merge changed connectivity */
	bool unite(int x, int y) {
		comp--;
		int x_root = find(x);
		int y_root = find(y);
		if (x_root == y_root) { return false; }

		if (sizes[x_root] < sizes[y_root]) { swap(x_root, y_root); }
		sizes[x_root] += sizes[y_root];
		parents[y_root] = x_root;
		return true;
	}

	/** @return whether x and y are in the same connected component */
	bool connected(int x, int y) { return find(x) == find(y); }
};

void run(int n){
	DSU dsu(n);

	for(int step = 1; step < n; step++){
		int c = 0;
		map<int, int> mp;
		vector<vector<int>> connected_comp;
		for(int i = 0; i < n; i++){
			if(mp.count(dsu.find(i))){
				connected_comp[mp[dsu.find(i)]].push_back(i);
			}
			else{
				connected_comp.push_back({i});
				mp[dsu.find(i)] == c++;
			}
		}

		vector<int> endpoints;

		for(int i = 0; i < dsu.comp; i++){
			vector<int> rest;
			for(int j = 0; j < dsu.comp; j++){
				if(j == i) continue;
				for(auto e: connected_comp[j]) rest.push_back(e);
			}

			for(auto e: connected_comp[i]){
				int q = query(1, rest.size(), new int[]{1}, rest);
				if(q == 1){
					endpoints.push_back(e);
				}
			}
		}

		setRoad(endpoints[0], endpoints[1]);
		dsu.unite(endpoints[0], endpoints[1]);
	}
}

컴파일 시 표준 에러 (stderr) 메시지

icc.cpp: In function 'void run(int)':
icc.cpp:67:77: error: cannot convert 'std::vector<int>' to 'int*'
   67 |                                 int q = query(1, rest.size(), new int[]{1}, rest);
      |                                                                             ^~~~
      |                                                                             |
      |                                                                             std::vector<int>
In file included from icc.cpp:2:
icc.h:10:38: note:   initializing argument 4 of 'int query(int, int, int*, int*)'
   10 | int query(int a, int b, int *A, int *B);
      |                                 ~~~~~^