Submission #794216

#TimeUsernameProblemLanguageResultExecution timeMemory
79421612345678Connecting Supertrees (IOI20_supertrees)C++17
11 / 100
162 ms22160 KiB
#include "supertrees.h" #include <vector> #include <bits/stdc++.h> using namespace std; int id[1005], t; vector<vector<int>> d(1005); bool can=1; int construct(std::vector<std::vector<int>> p) { int n = p.size(); std::vector<std::vector<int>> answer; for (int i = 0; i < n; i++) { std::vector<int> row; row.resize(n); answer.push_back(row); } for (int i=0; i<n; i++) for (int j=0; j<n; j++) if (p[i][j]!=p[j][i]) can=0; if (!can)return 0; for (int i=0; i<n; i++) { for (int j=i+1; j<n; j++) { if (p[i][j]) { if (!id[i]&&!id[j]) id[i]=id[j]=++t, d[t].push_back(i), d[t].push_back(j); else if (!id[i]) id[i]=id[j], d[id[j]].push_back(i); else if (!id[j]) id[j]=id[i], d[id[i]].push_back(j); } } } for (int i=1; i<=t; i++) { sort(d[i].begin(), d[i].end()); for (auto x:d[i]) { for (auto y:d[i]) { if (!p[x][y]) can=0; } } if (!can) break; for (int j=0; j<d[i].size()-1; j++) answer[d[i][j]][d[i][j+1]]=answer[d[i][j+1]][d[i][j]]=1; } if (can) { build(answer); return 1; } else return 0; }

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:45:24: 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=0; j<d[i].size()-1; j++) answer[d[i][j]][d[i][j+1]]=answer[d[i][j+1]][d[i][j]]=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...