Submission #953758

#TimeUsernameProblemLanguageResultExecution timeMemory
953758Trisanu_DasConnecting Supertrees (IOI20_supertrees)C++17
0 / 100
153 ms24144 KiB
#include <bits/stdc++.h> using namespace std; #include "supertrees.h" int n, par[1005]; int find(int u){ if(par[u] == u) return u; par[u] = find(par[u]); return par[u]; } void union_(int u, int v){ par[find(u)] = find(v); } int construct(vector<vector<int> > p){ n = p.size(); for(int i = 0; i < n; i++) par[i] = i; vector<vector<int> > b(n, vector<int>(n)); /*for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(p[i][j] && find(i) != find(j)){ union_(i, j); b[i][j] = b[j][i] = 1; }else if(p[i][j] == 3 || (!p[i][j] && find(i) == find(j))) return 0; } }*/ for(int i = 0; i < n; i++){ vector<int> v; v.push_back(par[i]); for(int j = i + 1; j < n; j++){ if(p[i][j] == 2 && find(i) != find(j)){ v.push_back(par[j]); union_(i, j); } } if(v.size() == 2) return 0; for(int k = 0; k + 1 < v.size(); k++) b[v[k]][v[k + 1]] = b[v[k + 1]][v[k]] = 1; b[v[0]][v[v.size() - 1]] = b[v[v.size() - 1]][v[0]] = 1; } for(int i = 0; i < n; i++) b[i][i] = 0; build(b); return 1; }

Compilation message (stderr)

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