Submission #1253209

#TimeUsernameProblemLanguageResultExecution timeMemory
1253209hectormedranoWorld Map (IOI25_worldmap)C++20
72 / 100
72 ms9540 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> v;
vector<int> ord;
vector<bool> d;

void DFS(int y) {
	ord.push_back(y);
	d[y] = false;
	for (int z : v[y]) {
		if (d[z]==true) {
			DFS(z);
			ord.push_back(y);
		}
	}
}

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
	v.resize(N + 1);
	d.resize(N + 1, true);
	for (int i = 0;i < M;i++) {
		v[A[i]].push_back(B[i]);
		v[B[i]].push_back(A[i]);
	}
	DFS(1);
	vector<bool> u(N + 1, false);
 vector<vector<int>> ans(4*N-1, vector<int>(4*N-1));
 int c = 0;
 for (int x : ord) {
	 if (u[x] == false) {
		 u[x] = true;
		 for (int j = 0;j < 4 * N - 1;j++) {
			 ans[c][j] = x;
		 }
		 c++;
		 int k = v[x].size();
		 for (int j = 0;j < k;j++) {
			 ans[c][2 * j] = x;
			 ans[c][2 * j + 1] = v[x][j];
		 }
		 for (int j = 2 * k;j < 4 * N - 1;j++) {
			 ans[c][j] = x;
		 }
		 c++;
		 for (int j = 0;j < 4 * N - 1;j++) {
			 ans[c][j] = x;
		 }
		 c++;
	 }
	 else {
		 for (int j = 0;j < 4 * N - 1;j++) {
			 ans[c][j] = x;
		 }
		 c++;
	 }
 }
 v.clear();
 ord.clear();
 d.clear();
 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...