Submission #315379

#TimeUsernameProblemLanguageResultExecution timeMemory
315379nickmet2004Connecting Supertrees (IOI20_supertrees)C++14
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> #include "supertrees.h" using namespace std; int construct(vector<vector<int>> p){ int n = p.size(); for(int i = 0; i< n; ++i) for(int j = 0; j< n; ++j) if(p[i][j] == 3 || p[i][j] != p[j][i]) return 0; vector<vector<int>>ans(n); vector<int> E(n) , cmp(n) , ch(n) , vis(n); for(int i = 0; i < n; ++i)ans[i].resize(n); int cnt = 0; for(int i = 0; i < n; ++i){ if(cmp[i]) continue; cmp[i] = ++cnt; for(int j = 0; j < n; ++j) if(p[i][j])cmp[j] = cmp[i]; } /// components for(int i = 0; i < n; ++i) for(int j = 0; j < n; ++j) if(cmp[i] != cmp[j] && p[i][j])return 0; cnt =0; for(int i= 0; i < n; ++i){ if(ch[i])continue; ch[i] = ++cnt; for(int j = 0; j< n; ++j) if(p[i][j] == 1) E[i].emplace_back(j) , ch[j] = ch[i]; } /// determine double cycles for(int i = 0; i < n; ++i) for(int j = 0; j < n; ++j) if(ch[i] != ch[j] && p[i][j] == 1)return 0; for(int i = 0; i < n; ++i){ if(!E[i].size())continue; Q.emplace_back(i); for(int j : E[i]) ans[i][j] = ans[j][i] = 1; } /// make a cycle for(int i : Q){ if(vis[i])continue; vector<int> a; for(int j : Q){ if(p[i][j]) a.emplace_back(j) , vis[j] = 1; } if(a.size() == 2) return 0; if(a.size() == 1)continue; for(int k = 0; k < a.size(); ++k){ int X = a[k] , Y = a[(k + 1) % a.size()]; ans[X][Y] = ans[Y][X]= 1; } }for(int i = 0; i < n; ++i)ans[i][i] =0; build(ans); }

Compilation message (stderr)

supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:22:57: error: request for member 'emplace_back' in 'E.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
   22 |         for(int j = 0; j< n; ++j) if(p[i][j] == 1) E[i].emplace_back(j) , ch[j] = ch[i];
      |                                                         ^~~~~~~~~~~~
supertrees.cpp:27:18: error: request for member 'size' in 'E.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
   27 |         if(!E[i].size())continue;
      |                  ^~~~
supertrees.cpp:28:9: error: 'Q' was not declared in this scope
   28 |         Q.emplace_back(i);
      |         ^
supertrees.cpp:29:24: error: 'begin' was not declared in this scope; did you mean 'std::begin'?
   29 |         for(int j : E[i]) ans[i][j] = ans[j][i] = 1;
      |                        ^
      |                        std::begin
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
                 from supertrees.cpp:1:
/usr/include/c++/9/valarray:1224:5: note: 'std::begin' declared here
 1224 |     begin(const valarray<_Tp>& __va)
      |     ^~~~~
supertrees.cpp:29:24: error: 'end' was not declared in this scope; did you mean 'std::end'?
   29 |         for(int j : E[i]) ans[i][j] = ans[j][i] = 1;
      |                        ^
      |                        std::end
In file included from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:95,
                 from supertrees.cpp:1:
/usr/include/c++/9/valarray:1244:5: note: 'std::end' declared here
 1244 |     end(const valarray<_Tp>& __va)
      |     ^~~
supertrees.cpp:32:17: error: 'Q' was not declared in this scope
   32 |     for(int i : Q){
      |                 ^
supertrees.cpp:40:26: 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 < a.size(); ++k){
      |                        ~~^~~~~~~~~~