제출 #431074

#제출 시각아이디문제언어결과실행 시간메모리
431074Hazem슈퍼트리 잇기 (IOI20_supertrees)C++14
11 / 100
245 ms30136 KiB
#include "supertrees.h"
#include <vector>
#include <bits/stdc++.h>

using namespace std;

const int N = 2e3+10;

vector<int>adj[N],vec;
vector<vector<int>>adjans;
int n,vis[N];

void dfs(int i){

	if(vis[i])
		return ;
	vis[i] = 1;
	vec.push_back(i);

	for(auto x:adj[i])
		dfs(x);
}

int construct(std::vector<std::vector<int>> p) {

	n = p.size();
	adjans = vector<vector<int>>(n,vector<int>(n,0));

	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			if(p[i][j]){
				adj[i].push_back(j);
				adj[j].push_back(i);
			}

	bool ans = 1;
	for(int i=0;i<n;i++){
		
		dfs(i);bool q = 1;
		for(int j=0;j<vec.size();j++)
			for(int k=0;k<vec.size();k++)
				q &= p[j][k]==1;

		//q &= !vec.size()||vec.size()>2;
		for(int j=0;j<(int)vec.size()-1;j++)
			adjans[vec[j]][vec[j+1]] = adjans[vec[j+1]][vec[j]] = 1;

		//adjans[vec[0]][vec.back()] = adjans[vec.back()][vec[0]] = 1;
		vec.clear();
		ans &= q;
	}
	if(!ans)
		return 0;

	build(adjans);
	return 1;
}

컴파일 시 표준 에러 (stderr) 메시지

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:40:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |   for(int j=0;j<vec.size();j++)
      |               ~^~~~~~~~~~~
supertrees.cpp:41:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |    for(int k=0;k<vec.size();k++)
      |                ~^~~~~~~~~~~
#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...