Submission #864740

#TimeUsernameProblemLanguageResultExecution timeMemory
864740andrei_boacaConnecting Supertrees (IOI20_supertrees)C++17
21 / 100
164 ms32084 KiB
#include "supertrees.h"
#include <vector>
#include <bits/stdc++.h>
//#include "grader.cpp"
using namespace std;

int n;
vector<vector<int>> adj;
vector<int> muchii[1005];
int comp[1005],nrcomp;
vector<int> nodes;
void dfs(int nod)
{
    comp[nod]=nrcomp;
    nodes.push_back(nod);
    for(int i:muchii[nod])
        if(!comp[i])
            dfs(i);
}
int construct(std::vector<std::vector<int>> p)
{
    n=p.size();
    adj.resize(n);
    for(int i=0;i<n;i++)
        adj[i].resize(n);
    bool sub1=1;
    for(int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            sub1&=(p[i][j]<=1);
    if(sub1)
    {
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                if(p[i][j]==1)
                {
                    muchii[i].push_back(j);
                    muchii[j].push_back(i);
                }
        for(int i=0;i<n;i++)
            if(comp[i]==0)
            {
                nrcomp++;
                nodes.clear();
                dfs(i);
                for(int j=1;j<nodes.size();j++)
                {
                    int a=nodes[j-1];
                    int b=nodes[j];
                    adj[a][b]=adj[b][a]=1;
                }
            }
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
            {
                if(p[i][j]==0&&comp[i]==comp[j])
                    return 0;
                if(p[i][j]==1&&comp[i]!=comp[j])
                    return 0;
            }
        build(adj);
        return 1;
    }
	return 0;
}

Compilation message (stderr)

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