Submission #927614

# Submission time Handle Problem Language Result Execution time Memory
927614 2024-02-15T07:17:26 Z MrDeboo Connecting Supertrees (IOI20_supertrees) C++17
Compilation error
0 ms 0 KB
#include "bits/stdc++.h"
#include "supertrees.h"
using namespace std;
vector<int>vct[1000][2];
vector<vector<int>>ans;
vector<vector<int>>P;
int slv(vector<int>v){
	for(auto &i:v){
		for(auto &w:v){
			if(!p[i][w])return 0;
		}
	}
	vector<int>V;
	vector<bool>vis(P.size());
	for(int i=0;i<v.size();i++){
		if(vis[i])continue;
		int I=i;
		for(int w=0;w<v.size();w++){
			if(P[v[i]][v[w]]==1&&!vis[w]&&i!=w){
				bool bl=1;
				for(int j=0;j<v.size();j++){
					if(j==i||j==w)continue;
					if(P[v[j]][v[i]]!=P[v[j]][v[w]])bl=0;
				}
				if(bl){
					vis[w]=1;
					ans[v[I]][v[w]]=1;
					ans[v[w]][v[I]]=1;
					I=w;
				}
			}
		}
		V.push_back(i);
		vis[i]=1;
	}
	v=V;
	for(int i=0;i<v.size();i++){
		for(int w=i+1;w<v.size();w++){
			if(P[v[i]][v[w]]!=2)return 0;
		}
	}
	if(v.size()>1){
		for(int i=0;i<v.size();i++){
			ans[v[i]][v[(i+1)%v.size()]]=1;
			ans[v[(i+1)%v.size()]][v[i]]=1;
		}
	}
	return 1;
}
int construct(std::vector<std::vector<int>> p){
	for(auto &i:p){
		for(auto &w:i){
			if(w>2)return 0;
		}
	}
	for(auto &i:p)P.push_back(i);
	int n=p.size();
	for(int i=0;i<n;i++){
		for(int w=0;w<n;w++){
			if(i==w)continue;
			vct[i][p[i][w]-1].push_back(w);
		}
	}
	for(int i=0;i<n;i++){
		vector<int>v(n);
		ans.push_back(v);
	}
	vector<bool>vis(n);
	for(int i=0;i<n;i++){
		for(int w=0;w<n;w++){
			if(vis[i]||vis[w]||i==w)continue;
			if(p[i][w]){
				deque<int>dq={i};
				vis[i]=1;
				vector<int>vc;
				while(dq.size()){
					int a=dq.front();
					vc.push_back(a);
					dq.pop_front();
					for(auto &j:vct[a][1]){
						if(!vis[j]){
							vis[j]=1;
							dq.push_back(j);
						}
					}
					for(auto &j:vct[a][0]){
						if(!vis[j]){
							vis[j]=1;
							dq.push_back(j);
						}
					}
				}
				if(!slv(vc))return 0;
			}
		}
	}
	build(ans);
	return 1;
}

Compilation message

supertrees.cpp: In function 'int slv(std::vector<int>)':
supertrees.cpp:10:8: error: 'p' was not declared in this scope
   10 |    if(!p[i][w])return 0;
      |        ^
supertrees.cpp:15:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for(int i=0;i<v.size();i++){
      |              ~^~~~~~~~~
supertrees.cpp:18:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |   for(int w=0;w<v.size();w++){
      |               ~^~~~~~~~~
supertrees.cpp:21:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     for(int j=0;j<v.size();j++){
      |                 ~^~~~~~~~~
supertrees.cpp:37:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for(int i=0;i<v.size();i++){
      |              ~^~~~~~~~~
supertrees.cpp:38:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |   for(int w=i+1;w<v.size();w++){
      |                 ~^~~~~~~~~
supertrees.cpp:43:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |   for(int i=0;i<v.size();i++){
      |               ~^~~~~~~~~