제출 #730090

#제출 시각아이디문제언어결과실행 시간메모리
730090lucri슈퍼트리 잇기 (IOI20_supertrees)C++17
21 / 100
220 ms24016 KiB
#include "supertrees.h"
#include <vector>
#include <cassert>
#include <cstdio>
#include <cstdlib>
#include <string>
int t[1010];
int tata(int nod)
{
    if(t[nod]==nod) return nod;
    return t[nod]=tata(t[nod]);
}
int construct(std::vector<std::vector<int>> p) {
	int n = p.size();
	std::vector<std::vector<int>> answer;
	answer.resize(n);
	for (int i = 0; i < n; i++) {
		t[i]=i;
		answer[i].resize(n);
	}
	for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
            if(p[i][j]==1)
            {
                if(tata(i)!=tata(j))
                {
                    answer[i][j]=answer[j][i]=1;
                    t[t[i]]=t[j];
                }
            }
    }
	for(int i=0;i<n;++i)
    {
        for(int j=0;j<n;++j)
            if(p[i][j]==0)
            {
                if(tata(i)==tata(j))
                    return 0;
            }
    }
	build(answer);
	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...