Submission #984302

# Submission time Handle Problem Language Result Execution time Memory
984302 2024-05-16T12:56:44 Z CSQ31 Connecting Supertrees (IOI20_supertrees) C++17
0 / 100
1 ms 2396 KB
#include "supertrees.h"
#include<bits/stdc++.h>
using namespace std;
#define sz(a) (int)(a.size())
int p[1000][1000],ans[1000][1000];
void add(int v,int u){
	ans[v][u] = ans[u][v] = 1;
}
int construct(vector<vector<int>> P) {
	int n = sz(P);
	for (int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			p[i][j] = P[i][j];
			if(p[i][j] == 3)return 0;
		}
	}
	//find all nodes connected to 1
	//then nodes with p(1,v) = 1
	//this has to form a tree
	//repeat forming many trees then link the trees in a cycle
	vector<int>ded(n,0);
	for(int i=0;i<n;i++){
		if(ded[i])continue;
		vector<int>comp;
		vector<bool>incomp(n,0);
		for(int j=0;j<n;j++){
			if(ded[j])continue;
			if(p[i][j]){
				incomp[j] = 1;
				comp.push_back(j);
				ded[j] = 1;
			}
		}
		for(int x:comp)cout<<x<<" ";
		cout<<'\n';
		vector<vector<int>>trees;
		while(!comp.empty()){
			int v = comp[0];
			vector<int>tree,tmp;
			for(int u:comp){
				if(p[u][v] == 1)tree.push_back(u);
				else tmp.push_back(u);
			}
			trees.push_back(tree);
			comp = tmp;
		}
		int ss = sz(trees);
		if(ss > 1)add(trees[0][0],trees[ss-1][0]);
		for(int i=0;i<ss;i++){
			if(i+1<sz(trees)){
				add(trees[i][0],trees[i+1][0]);
			}
			for(int j=0;j+1<sz(trees[i]);j++){
				add(trees[i][j],trees[i][j+1]);
			}
		}

	}
	vector<vector<int>>fin(n);
	for(int i=0;i<n;i++){
		fin[i].assign(n,0);
		for(int j=0;j<n;j++)fin[i][j] = ans[i][j];
	}
	build(fin);
	return 1;
}
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2392 KB secret mismatch
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2392 KB secret mismatch
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2396 KB secret mismatch
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2392 KB secret mismatch
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2392 KB secret mismatch
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 2392 KB secret mismatch
2 Halted 0 ms 0 KB -