답안 #563031

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
563031 2022-05-16T06:03:25 Z Devigo 도로 폐쇄 (APIO21_roads) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
using namespace std;

const int siz = 1e5+1;
bool done = 0;

long long cost = 0;

vector<bool> rem(siz,0);

struct edge {
	long long w, x, y;
};

bool cmp (edge a, edge b) {
	return a.w < b.w;
}

void get(int k, vector<int> &degree, vector<edge> &el, int n, int m) {
	for(int i=0; i<m; i++) {
		if(rem[i]) continue;
		bool isb = 0;
		int u = degree[el[i].x]; int v = degree[el[i].y];
		if(u > k || v > k) isb = 1;
		if(isb) {
			degree[el[i].x]--; degree[el[i].y]--;
			rem[i] = 1;
			cost += el[i].w;
		}
		int grt = -1;
		for(int j=0; j<n; j++) {
			grt = max(grt,degree[j]);
		}
		if(grt <= k) {
			done = 1; return;
		}
	}
	return;
}

long long[] minimum_closure_costs(int n, int u[], int v[], int w[]) {
	vector<int> degree(n,0);
	vector<edge> el;
	int m = n-1;
	for(int i=0; i<m; i++) {
		degree[u[i]]++;
		degree[v[i]]++;
		el.push_back({w[i],u[i],v[i]});
	}
	sort(el.begin(), el.end(), cmp);
	long long c[n]; 
	for(int i=m; i>=0; i--) {
		while(!done) {
			get(i,degree,el,n,m);
		}
		c[i] = cost;
		done = 0;
	}
	return c;
}

Compilation message

roads.cpp:41:10: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   41 | long long[] minimum_closure_costs(int n, int u[], int v[], int w[]) {
      |          ^
roads.cpp:41:10: error: structured binding declaration cannot have type 'long long int'
   41 | long long[] minimum_closure_costs(int n, int u[], int v[], int w[]) {
      |          ^~
roads.cpp:41:10: note: type must be cv-qualified 'auto' or reference to cv-qualified 'auto'
roads.cpp:41:10: error: empty structured binding declaration
roads.cpp:41:13: error: expected initializer before 'minimum_closure_costs'
   41 | long long[] minimum_closure_costs(int n, int u[], int v[], int w[]) {
      |             ^~~~~~~~~~~~~~~~~~~~~