Submission #696369

#TimeUsernameProblemLanguageResultExecution timeMemory
696369T0p_Connecting Supertrees (IOI20_supertrees)C++14
21 / 100
276 ms27068 KiB
// Subtask 2

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

const int N = 1000;

bool visited[N];

int construct(vector<vector<int>> p)
{
	int n = p.size();
	vector<vector<int>> ans(n, vector<int> (n, 0));
	
	vector<int> connectedList[n];
	for (int i=0 ; i<n ; i++) for (int j=0 ; j<n ; j++) if (p[i][j] == 1) connectedList[i].push_back(j);

	for (int i=0 ; i<n ; i++) for (int j=0 ; j<n ; j++) if (p[i][j] == 1 && connectedList[i] != connectedList[j]) return 0;

	for (int i=0 ; i<n ; i++) if (!visited[i])
	{
		visited[i] = true;

		for (int j=i+1 ; j<n ; j++) if (p[i][j] == 1)
		{
			visited[j] = true;
			ans[i][j] = ans[j][i] = 1;
		}
	}
	

	build(ans);
	return 1;
}
#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...