답안 #924434

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
924434 2024-02-09T03:45:09 Z Nurislam Easter Eggs (info1cup17_eastereggs) C++14
0 / 100
1 ms 512 KB
#include <bits/stdc++.h>
#include "grader.h"
//~ #include "grader.cpp"
using namespace std;
#define pb push_back
int ans = 0;
vector<vector<int> > g;
vector<int> us;
int m, ctr;
int dcnt(int pos, int pre){
	int s = 1;
	for(auto to:g[pos]){
		if(us[to] || to == pre)continue;
		s+=dcnt(to, pos);
	}
	return s;
}
int dct(int pos, int pre){
	bool ok = 1;
	int s = 1;
	for(auto to:g[pos]){
		if(us[to] || to == pre)continue;
		int sn = 0;
		sn = dcnt(to, pos);
		if(sn > m/2)ok = 0;
		s+=sn;
	}
	if(s < m/2)ok = 0;
	if(ok)ctr = pos;
	return s;
}
vector<int> re;
void dfs(int pos, int pre){
	re.pb(pos);
	for(int to:g[pos]){
		if(us[to] || to == pre)continue;
		dfs(to, pos);
	}
}
void ctrdec(int pos){
	m = dcnt(pos, -1);
	m = dct(pos, -1);
	us[ctr] = 1;
	ans = ctr;
	for(auto to:g[ctr]){
		if(us[to])continue;
		re.clear();
		dfs(to, -1);
		if(query(re) == 0)continue;
		ctrdec(to);
	}
}
int findEgg (int n, vector < pair < int, int > > way)
{
	g.resize(n+1);
	us.resize(n+1);
	for(int i = 1; i <= n; i++){
		us[i] = 0;
		g[i].clear();
	}
	for(auto [u, v]: way){
		g[u].pb(v);
		g[v].pb(u);
	}
	ctrdec(1);
	return ans;
}

Compilation message

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:61:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   61 |  for(auto [u, v]: way){
      |           ^
# 결과 실행 시간 메모리 Grader output
1 Runtime error 1 ms 436 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 512 KB The found island is incorrect
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB The found island is incorrect
2 Halted 0 ms 0 KB -