제출 #1357069

#제출 시각아이디문제언어결과실행 시간메모리
1357069enzy도시들 (IOI15_towns)C++20
컴파일 에러
0 ms0 KiB
#include "towns.h"
#include<bits/stdc++.h>
using namespace std;
const int inf=1e9+7;

int hubDistance(int n, int sub){
	int best=0, id=0;
	for(int i=1;i<n;i++){
		int at=getDistance(0,i);
		if(at>best){
			best=at;
			id=i;
		}
	}
	vector<int>d1(n), d2(n);
	for(int i=0;i<n;i++) d1[i]=getDistance(id,i);
	int f1=id, f2=0; best=0;
	for(int i=0;i<n;i++){
		if(d1[i]>best){
			best=d1[i];
			f2=i;
		}
	}
	for(int i=0;i<n;i++) d2[i]=getDistance(f2,i);
	int r=inf;
	for(int i=0;i<n;i++){
		int x=abs(d1[i]-d2[i])+best;
		r=min(r,x/2);
	}

	auto solve4_1=[&](){
		int e=1, m=0, d=1;
		for(int i=0;i<n;i++){
			if(i==f1||i==f2) continue;
			int x=(d1[i]-d2[i])+best; x/=2;
			if(x<r) e++;
			if(x==r) m++;
			if(x>r) d++;
		}
		if(max({e,m,d})<=(n/2)) return r;
		return -r;
	};
	
	auto solve4_1=[&](){
		int e=1, m=0, d=1;
		for(int i=0;i<n;i++){
			if(i==f1||i==f2) continue;
			int x=(d2[i]-d1[i])+best; x/=2;
			if(x<r) e++;
			if(x==r) m++;
			if(x>r) d++;
		}
		if(max({e,m,d})<=(n/2)) return r;
		return -r;
	};

	return max(solve4_1(),solve4_2());

}

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

towns.cpp: In function 'int hubDistance(int, int)':
towns.cpp:44:14: error: conflicting declaration 'auto solve4_1'
   44 |         auto solve4_1=[&](){
      |              ^~~~~~~~
towns.cpp:31:14: note: previous declaration as 'hubDistance(int, int)::<lambda()> solve4_1'
   31 |         auto solve4_1=[&](){
      |              ^~~~~~~~
towns.cpp:57:31: error: 'solve4_2' was not declared in this scope; did you mean 'solve4_1'?
   57 |         return max(solve4_1(),solve4_2());
      |                               ^~~~~~~~
      |                               solve4_1