Submission #637264

#TimeUsernameProblemLanguageResultExecution timeMemory
637264FidanThousands Islands (IOI22_islands)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include <variant> #include "islands.h" using namespace std; typedef int ll; variant<bool, vector<int>> find_journey(int n, int m, vector<int> u, vector<int> v){ if(n==2){ ll a=-1, b=-1, c=-1; for(ll i=0; i<m; i++){ if(u[i]==0){ if(a==-1) a=i; else b=i; } else c=i; } if(b==-1 || c==-1) return false; return vector<int>({a, c, b, a, c, b}); } else if(m==n*(n-1)){ ll a=-1, b=-1, c=-1, d=-1, e=-1, f=-1; for(ll i=0; i<m; i++){ if(u[i]==0 && v[i]==1) a=i; if(u[i]==1 && v[i]==0) b=i; if(u[i]==1 && v[i]==2) c=i; if(u[i]==2 && v[i]==1) d=i; if(u[i]==2 && v[i]==0) e=i; if(u[i]==0 && v[i]==2) f=i; } return vector<int>({a, c, e, f, d, b, e, c, a, b, d, f}); } else{ vector<vector<pair<ll, ll>>> v(n); for(ll i=0; i<m; i++){ v[u[i]].push_back({v[i], i}); } if(v[0].size()==2){ ll a=v[0][0].second, b=v[0][1].second; ll a1, b1; if(a%2==0) a1=a+1; else a1=a-1; if(b%2==0) b1=b+1; else b1=b-1; return vector<int>({a, a1, b, b1, a1, a, b1, b}); } else{ bool f=false; for(ll i=0; i<n; i++){ if(v[i].size()>=3) f=true; } if(!f) return false; vector<ll> res1, res; res1.push_back(v[0][0].second); ll l=v[0][0].first, k=0; while(!v[l].size()>=3){ if(v[l][0].first==k){ res1.push_back(v[l][1].second); res.push_back(v[l][1].second); k=l; l=v[l][1].first; } else{ res1.push_back(v[l][0].second); res.push_back(v[l][0].second); k=l; l=v[l][0].first; } } ll a=-1, b=-1; for(i=0; i<v[l].size(); i++){ if(v[l][i].first!=k){ if(a==-1) a=v[l][i].second; else b=v[l][i].second; } } ll a1, b1; if(a%2==0) a1=a+1; else a1=a-1; if(b%2==0) b1=b+1; else b1=b-1; res.push_back(a); res.push_back(a1); res.push_back(b); res.push_back(b1); res.push_back(a1); res.push_back(a); res.push_back(b1); res.push_back(b); reverse(res1.begin(), res1.end()); for(ll asdf:res1) res.push_back(asdf); return res; } } }

Compilation message (stderr)

islands.cpp: In function 'std::variant<bool, std::vector<int, std::allocator<int> > > find_journey(int, int, std::vector<int>, std::vector<int>)':
islands.cpp:34:31: error: no matching function for call to 'std::vector<std::pair<int, int> >::push_back(<brace-enclosed initializer list>)'
   34 |    v[u[i]].push_back({v[i], i});
      |                               ^
In file included from /usr/include/c++/10/vector:67,
                 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 islands.cpp:1:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, int>]'
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<int, int>&'}
 1187 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<int, int>]'
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<int, int> >::value_type&&' {aka 'std::pair<int, int>&&'}
 1203 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
islands.cpp:54:22: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
   54 |    while(!v[l].size()>=3){
      |                      ^~
islands.cpp:54:10: note: add parentheses around left hand side expression to silence this warning
   54 |    while(!v[l].size()>=3){
      |          ^~~~~~~~~~~~
      |          (           )
islands.cpp:54:22: warning: comparison of constant '3' with boolean expression is always false [-Wbool-compare]
   54 |    while(!v[l].size()>=3){
      |          ~~~~~~~~~~~~^~~
islands.cpp:69:8: error: 'i' was not declared in this scope
   69 |    for(i=0; i<v[l].size(); i++){
      |        ^