제출 #1263651

#제출 시각아이디문제언어결과실행 시간메모리
1263651gelastropod세계 지도 (IOI25_worldmap)C++20
72 / 100
78 ms9544 KiB
#include "worldmap.h"

#include <bits/stdc++.h>
using namespace std;

int N;
vector<vector<int>> adjlist;
vector<vector<int>> ans;
vector<int> visited;
vector<int> null = {};

void filll(vector<int>& filled, int k) {
	vector<int> nn;
	for (int i = 0; i < 4 * N - 1; i++) {
		if (!(i & 1) && i / 2 < filled.size()) nn.push_back(filled[i / 2] + 1);
		else nn.push_back(k + 1);
	}
	ans.push_back(nn);
}

void dfs(int n, int p) {
	filll(null, n);
	filll(adjlist[n], n);
	visited[n] = true;
	for (int i : adjlist[n]) {
		if (visited[i]) continue;
		filll(null, n);
		dfs(i, n);
	}
	filll(null, n);
}

std::vector<std::vector<int>> create_map(int _N, int M, std::vector<int> A, std::vector<int> B) {
	ans = vector<vector<int>>();
	N = _N;
	adjlist = vector<vector<int>>(N, vector<int>());
	visited = vector<int>(N, 0);
	for (int i = 0; i < M; i++) {
		A[i]--, B[i]--;
		adjlist[A[i]].push_back(B[i]);
		adjlist[B[i]].push_back(A[i]);
	}
	dfs(0, -1);
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...