Submission #560637

#TimeUsernameProblemLanguageResultExecution timeMemory
560637ahmet34Connecting Supertrees (IOI20_supertrees)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "supertrees.h" using namespace std; using ll = long long; using pii = pair<int, int>; #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() const int INF = 5e8, N = 1e5+10, M = 998244353, LOG = 16; const ll LINF = 1e18; struct DSU { vector<int> pr, sz; DSU (int n) : pr(n), sz(n, 1) { iota(all(pr), 0); } int find_par(int x) { return pr[x] = (pr[x] == x ? x : find_par(pr[x])); } bool unite(int a, int b) { a = find_par(a), b = find_par(b); if(a == b) return false; if(sz[a] < sz[b]) swap(a, b); pr[b] = a; sz[a] += sz[b]; return true; } }; int construct(vector<vector<int>> p) { for(const auto& vi : p) if(count(all(vi), 3)) return 0; int n = p.size(); vector ans(n, vector<int>(n)); DSU sets(n); for (int i = 0; i < n; i++) { for (int j = i+1; j < n; j++) { if(p[i][j] == 1 and sets.unite(i, j)) ans[i][j] = ans[j][i] = 1; } } set<int> parents; for(int i = 0; i < n; ++i) parents.insert(sets.find_par(i)); while(!parents.empty()) { vector<int> cur {*parents.begin()}; for(int x : parents) if(p[cur.back()][x] == 2) cur.push_back(x); for(int x : cur) parents.erase(x); for(int i = 0; i < cur.size(); i++) { int a = cur[i], b = cur[(i+1)%cur.size()]; if(a != b) ans[a][b] = ans[b][a] = 1; } } build(ans); return 1; }

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:37:12: error: missing template arguments before 'ans'
   37 |     vector ans(n, vector<int>(n));
      |            ^~~
supertrees.cpp:44:17: error: 'ans' was not declared in this scope; did you mean 'abs'?
   44 |                 ans[i][j] = ans[j][i] = 1;
      |                 ^~~
      |                 abs
supertrees.cpp:61:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |         for(int i = 0; i < cur.size(); i++) {
      |                        ~~^~~~~~~~~~~~
supertrees.cpp:64:17: error: 'ans' was not declared in this scope; did you mean 'abs'?
   64 |                 ans[a][b] = ans[b][a] = 1;
      |                 ^~~
      |                 abs
supertrees.cpp:67:11: error: 'ans' was not declared in this scope; did you mean 'abs'?
   67 |     build(ans);
      |           ^~~
      |           abs