Submission #320250

#TimeUsernameProblemLanguageResultExecution timeMemory
320250blueConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
1 ms780 KiB
#include "supertrees.h"
#include <vector>
#include <set>
using namespace std;

int construct(vector< vector<int> > p)
{
    int n = p.size();
    vector< vector<int> > b(n);
    for(int i = 0; i < n; i++) b[i] = vector<int>(n, 0);

    vector<int> group(n, -1);
    set<int> grouplist;
    for(int i = 0; i < n; i++)
    {
        group[i] = i;
        grouplist.clear();
        for(int j = 0; j < i; j++) if(p[i][j]) grouplist.insert(group[j]);
        for(int j = 0; j < i; j++) if(grouplist.find(group[j]) != grouplist.end()) group[j] = i;
    }
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            if(group[i] == group[j] && p[i][j] == 0) return 0;
            if(group[i] != group[j] && p[i][j] == 2) return 0;
        }
    }
    vector<int> group_set[n];
    for(int i = 0; i < n; i++) group_set[group[i]].push_back(i);
    for(int i = 0; i < n; i++) if(group_set[i].size() >= 3) group_set[i].push_back(group_set[i][0]);

    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < group_set[i].size()-1; j++)
        {
            b[group_set[i][j]][group_set[i][j+1]] = 1;
            b[group_set[i][j+1]][group_set[i][j]] = 1;
        }
    }
    build(b);

    return 1;
}

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:35:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |         for(int j = 0; j < group_set[i].size()-1; 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...