Submission #1045163

#TimeUsernameProblemLanguageResultExecution timeMemory
1045163karthi222528Factories (JOI14_factories)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; struct segTree{ int n; int inf = 1e9; vector<pair<int,int>> st; void init(int n){ this->n = n; st.resize(4*n,{-1,inf}); } pair<int,int> merge_pair(pair<int,int> &p1,pair<int,int> &p2){ if(p1.second<p2.second){ return p1; }else{ if(p1.second>p2.second){ return p2; } if(p1.first<p2.first){ return p1; } return p2; } } void build(int node,int s,int e,vector<pair<int,int>> &v){ if(s==e){ st[node] = v[s]; return; } int lc = 2*node + 1; int rc = lc + 1; int mid = s + (e-s)/2; build(lc,s,mid,v); build(rc,mid+1,e,v); st[node] = merge_pair(st[lc],st[rc]); return; } pair<int,int> query_min(int node,int s,int e,int l,int r){ if(e<l||s>r){ return {-1,inf}; } if(s>=l&&e<=r){ return st[node]; } int lc = 2*node + 1; int rc = lc + 1; int mid = s + (e-s)/2; pair<int,int> le = query_min(lc,s,mid,l,r); pair<int,int> ri = query_min(rc,mid+1,e,l,r); return merge_pair(le,ri); } }; struct lca_tree{ int n; int id = 0; vector<vector<pair<int,int>>> adj; vector<pair<int,int>> dfs_arr; vector<long long> dep,pos,rdep; segTree seg; void init(int n,vector<vector<pair<int,int>>> &tree){ this->n = n; this->adj = tree; dep.resize(n+1,0); rdep.resize(n+1,0); pos.resize(n+1,1e9); dfs(0,-1); seg.init(2*n - 1); seg.build(0,0,2*n - 2,dfs_arr); pos_assign(); } void dfs(int u,int p){ dfs_arr.push_back({u,dep[u]}); for(auto c: adj[u]){ if(c.first!=p){ dep[c.first] = dep[u] + 1; rdep[c.first] = rdep[u] + c.second; dfs(c.first,u); dfs_arr.push_back({u,dep[u]}); } } return; } void pos_assign(){ for(int i = 0;i<2*n - 1;i++){ pos[dfs_arr[i].first] = min(pos[dfs_arr[i].first],(long long)i); } } int lca(int u,int v){ int l = min(pos[u],pos[v]); int r = max(pos[u],pos[v]); pair<int,int> ret = seg.query_min(0,0,2*n - 2,l,r); return ret.first; } int dist(int u,int v){ int lca_cur = lca(u,v); return dep[u] + dep[v] - 2*dep[lca_cur]; } long long len(int u,int v){ int lca_cur = lca(u,v); return rdep[u] + rdep[v] - 2*rdep[lca_cur]; } }; struct centroid_decomposition{ vector<vector<pair<int,int>>> adj; vector<bool> removed; vector<int> sub,par; int n; void init(int n,vector<vector<pair<int,int>>> &tree){ this->n = n; this->adj = tree; removed.resize(n+1,false); sub.resize(n+1); par.resize(n+1,-1); build(0,-1); } void build(int u,int p){ int sz = dfs(u,p); int cent = centroid(u,p,sz); removed[cent] = true; //cout<<cent<<" "; par[cent] = p; for(auto c: adj[cent]){ if(!removed[c]){ build(c,cent); } } return; } int dfs(int u,int p){ sub[u] = 1; for(auto c: adj[u]){ if(c!=p&&!removed[c]){ sub[u] += dfs(c,u); } } return sub[u]; } int centroid(int u,int p,int sz){ for(auto c: adj[u]){ if(c!=p&&!removed[c]){ if(sub[c]>sz/2){ return centroid(c,u,sz); } } } return u; } }; lca_tree lct; centroid_decomposition cd; vector<long long> ans; void Init(int n,int u[],int v[],int l[]){ vector<vector<pair<int,int>>> adj(n+1); for(int i = 0;i<n-1;i++){ adj[u[i]].push_back({v[i],l[i]}); adj[v[i]].push_back({u[i],l[i]}); } lct.init(n,adj); cd.init(n,adj); ans.resize(n,1e15); } long long Query(int s,int c1[],int t,int c2[]){ for(int i = 0;i<s;i++){ int node = c1[i]; while(node!=-1){ ans[node] = min(ans[node],lct.len(c1[i],node)); node = cd.par[node]; } } long long fans = 1e15; for(int i = 0;i<t;i++){ int node = c2[i]; while(node!=-1){ fans = min(fans,lct.len(c2[i],node) + ans[node]); node = cd.par[node]; } } for(int i = 0;i<s;i++){ int node = c1[i]; while(node!=-1){ ans[node] = 1e15; node = cd.par[node]; } } return fans; }

Compilation message (stderr)

factories.cpp: In member function 'void centroid_decomposition::build(int, int)':
factories.cpp:123:24: error: no match for 'operator[]' (operand types are 'std::vector<bool>' and 'std::pair<int, int>')
  123 |             if(!removed[c]){
      |                        ^
In file included from /usr/include/c++/10/vector:68,
                 from /usr/include/c++/10/functional:62,
                 from /usr/include/c++/10/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/10/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from factories.cpp:1:
/usr/include/c++/10/bits/stl_bvector.h:909:7: note: candidate: 'std::vector<bool, _Alloc>::reference std::vector<bool, _Alloc>::operator[](std::vector<bool, _Alloc>::size_type) [with _Alloc = std::allocator<bool>; std::vector<bool, _Alloc>::reference = std::vector<bool>::reference; std::vector<bool, _Alloc>::size_type = long unsigned int]'
  909 |       operator[](size_type __n)
      |       ^~~~~~~~
/usr/include/c++/10/bits/stl_bvector.h:909:28: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'std::vector<bool>::size_type' {aka 'long unsigned int'}
  909 |       operator[](size_type __n)
      |                  ~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_bvector.h:916:7: note: candidate: 'std::vector<bool, _Alloc>::const_reference std::vector<bool, _Alloc>::operator[](std::vector<bool, _Alloc>::size_type) const [with _Alloc = std::allocator<bool>; std::vector<bool, _Alloc>::const_reference = bool; std::vector<bool, _Alloc>::size_type = long unsigned int]'
  916 |       operator[](size_type __n) const
      |       ^~~~~~~~
/usr/include/c++/10/bits/stl_bvector.h:916:28: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'std::vector<bool>::size_type' {aka 'long unsigned int'}
  916 |       operator[](size_type __n) const
      |                  ~~~~~~~~~~^~~
factories.cpp:124:23: error: cannot convert 'std::pair<int, int>' to 'int'
  124 |                 build(c,cent);
      |                       ^
      |                       |
      |                       std::pair<int, int>
factories.cpp:116:20: note:   initializing argument 1 of 'void centroid_decomposition::build(int, int)'
  116 |     void build(int u,int p){
      |                ~~~~^
factories.cpp: In member function 'int centroid_decomposition::dfs(int, int)':
factories.cpp:132:17: error: no match for 'operator!=' (operand types are 'std::pair<int, int>' and 'int')
  132 |             if(c!=p&&!removed[c]){
      |                ~^~~
      |                |  |
      |                |  int
      |                std::pair<int, int>
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
In file included from /usr/include/c++/10/regex:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:110,
                 from factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::__cxx11::match_results<_BiIter, _Alloc>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   mismatched types 'const std::pair<_T1, _T2>' and 'int'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::reverse_iterator<_Iterator>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::reverse_iterator<_Iterator>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::move_iterator<_IteratorL>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::move_iterator<_IteratorL>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::fpos<_StateT>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'const std::allocator<_CharT>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note:   'std::pair<int, int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
  132 |             if(c!=p&&!removed[c]){
      |                   ^
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 factories.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:
factories.cpp:132:19: note: