# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
722413 | Yell0 | 슈퍼트리 잇기 (IOI20_supertrees) | C++17 | Compilation error | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "supertrees.h"
using namespace std;
typedef pair<int,int> pii;
int construct(vector<vector<int>> p) {
int N=p.size();
vector<pii> comps(N);
for(int i=0;i<N;++i) comps[i]={-1,-1};
int newcomp=0;
vector<int> newsubcomp(N,0);
for(int i=0;i<N;++i) {
if(comps[i]==pii(-1,-1)) {
comps[i]={newcomp,newsubcomp[newcomp]++};
newcomp++;
}
else if(comps[i].second<0) comps[i].second=newsubcomp[comps[i].first]++;
for(int j=i+1;j<N;++j) {
if(p[i][j]==3) return 0;
if(comps[j]==pii(-1,-1)) {
if(p[i][j]==0) continue;
if(p[i][j]==1) comps[j]=comps[i];
if(p[i][j]==2) comps[j].first=comps[i].first;
} else {
if(p[i][j]==0&&comps[i].first==comps[j].first) return 0;
if(p[i][j]==1) {
if(comps[i].second!=comps[j].second) {
if(comps[j].second>=0) return 0;
else comps[j].second=comps[i].second;
}
}
if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0;
}
}
}
for(int i=0;i<N;++i) for(int j=i+1;j<N;++j) if(p[i][j]==0&&comps[i].first==comps[j].first) return 0;
vector<vector<vector<int>>> gr(N,vector<vector<int>>(N));
int i=0;
for(pii p:comps) gr[p.first][p.second].push_back(i++);
vector<vector<int>> ans(N,vector<int>(N,0));
for(int i=0;i<newcomp;++i)
for(int j=0;j<newsubcomp[i];++j) {
for(int k=1;k<(int)gr[i][j].size();++k) ans[gr[i][j][k]][gr[i][j][0]]=ans[gr[i][j][0]][gr[i][j][k]]=1;
if(j==0) ans[gr[i][j][0]][gr[i][newsubcomp[i]-1][0]]=ans[gr[i][newsubcomp[i]-1][0]][gr[i][j][0]]=1;
else ans[gr[i][j][0]][gr[i][j-1][0]]=ans[gr[i][j-1][0]][gr[i][j][0]]=1;
}
for(int i=0;i<N;++i) ans[i][i]=0;
build(ans);
return 1;
}
Compilation message (stderr)
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)': supertrees.cpp:33:59: error: no match for 'operator!=' (operand types are 'int' and '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'}) 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1064:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)' 1064 | operator!=(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs) | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1064:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1144:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const std::__cxx11::sub_match<_BiIter>&)' 1144 | operator!=(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1144:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1237:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)' 1237 | operator!=(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1237:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1311:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type*, const std::__cxx11::sub_match<_BiIter>&)' 1311 | operator!=(typename iterator_traits<_Bi_iter>::value_type const* __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1311:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1405:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)' 1405 | operator!=(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1405:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1479:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const typename std::iterator_traits<_Iter>::value_type&, const std::__cxx11::sub_match<_BiIter>&)' 1479 | operator!=(typename iterator_traits<_Bi_iter>::value_type const& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1479:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} is not derived from 'const std::__cxx11::sub_match<_BiIter>' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:1579:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator!=(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)' 1579 | operator!=(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:1579:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/regex:62, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110, from supertrees.cpp:1: /usr/include/c++/10/bits/regex.h:2126:5: note: candidate: 'template<class _Bi_iter, class _Alloc> bool std::__cxx11::operator!=(const std::__cxx11::match_results<_BiIter, _Alloc>&, const std::__cxx11::match_results<_BiIter, _Alloc>&)' 2126 | operator!=(const match_results<_Bi_iter, _Alloc>& __m1, | ^~~~~~~~ /usr/include/c++/10/bits/regex.h:2126:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::__cxx11::match_results<_BiIter, _Alloc>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:64, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from supertrees.cpp:1: /usr/include/c++/10/bits/stl_pair.h:496:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator!=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)' 496 | operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_pair.h:496:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::pair<_T1, _T2>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from supertrees.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:372:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)' 372 | operator!=(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:372:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::reverse_iterator<_Iterator>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from supertrees.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:410:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)' 410 | operator!=(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:410:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::reverse_iterator<_Iterator>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from supertrees.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1444:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)' 1444 | operator!=(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1444:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::move_iterator<_IteratorL>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/bits/specfun.h:45, from /usr/include/c++/10/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41, from supertrees.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1501:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)' 1501 | operator!=(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1501:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::move_iterator<_IteratorL>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/iosfwd:40, from /usr/include/c++/10/ios:38, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from supertrees.cpp:1: /usr/include/c++/10/bits/postypes.h:227:5: note: candidate: 'template<class _StateT> bool std::operator!=(const std::fpos<_StateT>&, const std::fpos<_StateT>&)' 227 | operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs) | ^~~~~~~~ /usr/include/c++/10/bits/postypes.h:227:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::fpos<_StateT>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/string:41, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from supertrees.cpp:1: /usr/include/c++/10/bits/allocator.h:213:5: note: candidate: 'template<class _T1, class _T2> bool std::operator!=(const std::allocator<_CharT>&, const std::allocator<_T2>&)' 213 | operator!=(const allocator<_T1>&, const allocator<_T2>&) | ^~~~~~~~ /usr/include/c++/10/bits/allocator.h:213:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'const std::allocator<_CharT>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from supertrees.cpp:1: /usr/include/c++/10/string_view:525:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)' 525 | operator!=(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:525:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from supertrees.cpp:1: /usr/include/c++/10/string_view:531:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >)' 531 | operator!=(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:531:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'int' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from supertrees.cpp:1: /usr/include/c++/10/string_view:538:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)' 538 | operator!=(__type_identity_t<basic_string_view<_CharT, _Traits>> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:538:5: note: template argument deduction/substitution failed: supertrees.cpp:33:68: note: 'std::pair<int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>' 33 | if(p[i][j]==2&&(comps[i]==comps[j]||comps[i].first!=comps[j])) return 0; | ^ In file included from /usr/include/c++/10/string:55, from /usr/include/c++/10/bits/locale_classes.h:40, from /usr/include/c++/10/bits/ios_base.h:41, from /usr/include/c++/10/ios:42, from /usr/include/c++/10/istream:38, from /usr/include/c++/10/sstream:38, from /usr/include/c++/10/complex:45, from /usr/include/c++/10/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54, from supertrees.cpp:1: /usr/include/c++/10/bits/basic_string.h:6229:5: note: candidate: 'template