Submission #1029353

#TimeUsernameProblemLanguageResultExecution timeMemory
1029353elpro123Connecting Supertrees (IOI20_supertrees)C++14
46 / 100
130 ms31920 KiB
#include "supertrees.h" #include<bits/stdc++.h> using namespace std; int p[1000][1000],ans[1000][1000]; void add(int v,int u){ ans[v][u] = ans[u][v] = 1; } int construct(vector<vector<int>> P){ int n = P.size(); for(int i=0; i<n; i++){ for(int j=0; j<n; j++){ p[i][j] = P[i][j]; if(p[i][j] == 3){ return 0; } } } //find all nodes connected to 1 //then nodes with p(1,v) = 1 //this has to form a tree //repeat forming many trees then link the trees in a cycle vector<int> ded(n,0); for(int i=0; i<n; i++){ if(ded[i]){ continue; } vector<int> comp; vector<bool> incomp(n,0); for(int j=0; j<n; j++){ if(ded[j]){ continue; } if(p[i][j]){ incomp[j] = 1; comp.push_back(j); ded[j] = 1; } } vector<vector<int>> trees; while(!comp.empty()){ int v = comp[0]; vector<int> tree,tmp; for(int u: comp){ if(p[u][v] == 1){ tree.push_back(u); }else{ tmp.push_back(u); } } trees.push_back(tree); comp = tmp; } int ss = trees.size(); if(ss > 1){ add(trees[0][0], trees[ss-1][0]); } for(int i=0; i<ss; i++){ if(i+1<trees.size()){ add(trees[i][0],trees[i+1][0]); } for(int j=0; j+1<trees[i].size(); j++){ add(trees[i][j],trees[i][j+1]); } } } vector<vector<int>> fin(n); for(int i=0; i<n; i++){ fin[i].assign(n,0); for(int j=0; j<n; j++){ fin[i][j] = ans[i][j]; } } build(fin); return 1; }

Compilation message (stderr)

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