Submission #164055

#TimeUsernameProblemLanguageResultExecution timeMemory
164055oolimryAirline Route Map (JOI18_airline)C++14
Compilation error
0 ms0 KiB
#include "Alicelib.h" #include <bits/stdc++.h> using namespace std; void Alice( int n, int m, int A[], int B[] ){ int cnt = 0; vector<int> nums; for(int i = 0;i < 1024;i++){ int bits = 0; for(int j = 1;j < 1024;j *= 2){ if((i & j) != 0) bits++; } if(bits >= 2){ nums.push_back(i); } if(nums.size() == n) break; } typedef pair<int,int> ii; vector<ii> edges; for(int i = 0;i < m;i++){ edges.push_back(ii(A[i],B[i])); } int x = n+10; int y = n+11; int anchor[10]; for(int i = 0;i < 10;i++) anchor[i] = n+i; edges.push_back(ii(x,y)); for(int i = 0;i < 10;i++){ edges.push_back(ii(y,anchor[i])); } for(int i = 1;i < 9;i++){ edges.push_back(ii(anchor[0],anchor[i])); edges.push_back(ii(anchor[i],anchor[i+1])); } for(int i = 0;i < n;i++){ int k = nums[i]; for(int j = 0;j < 10;j++){ if((k & (1 << j)) != 0){ edges.push_back(ii(i,anchor[j])); } } } /* for(ii x : edges){ cout << x.first << " " << x.second << "\n"; } //*/ InitG(n+12,edges.size()); for(int i = 0;i < edges.size();i++){ MakeG(i,edges[i].first,edges[i].second); } //cout << "\n\n"; }
#include "Boblib.h" #include <bits/stdc++.h> using namespace std; struct hashii { size_t operator()(const pair<int,int>* x) const { return x.first ^ x.second; } }; void Bob( int n, int m, int C[], int D[] ){ int on = n - 12; vector<int> nums; typedef pair<int,int> ii; unordered_set<ii, hashii> edges; for(int i = 0;i < 1024;i++){ int bits = 0; for(int j = 1;j < 1024;j *= 2){ if((i & j) != 0) bits++; } if(bits >= 2){ nums.push_back(i); } if(nums.size() == on) break; } vector<int> adj[n]; for(int i = 0;i < m;i++){ adj[C[i]].push_back(D[i]); adj[D[i]].push_back(C[i]); //cout << C[i] << " " << D[i] << "\n"; edges.insert(ii(C[i],D[i])); edges.insert(ii(D[i],C[i])); } int x, y; for(int i = 0;i < n;i++){ if(adj[i].size() == 1){ x = i; y = adj[i][0]; break; } } //cout << x << "\n" << y << "\n"; vector<int> aa; for(int i = 0;i < n;i++){ if(i == x || i == y){ continue; } if(edges.find(ii(i,y)) != edges.end()){ aa.push_back(i); } } set<int> anchorSet; for(int k : aa){ //cout << k << " "; anchorSet.insert(k); } int anchor[10]; fill(anchor,anchor+10,-1); for(int i = 0;i < 10;i++){ int cnt = 0; for(int j = 0;j < 10;j++){ if(edges.find(ii(aa[i],aa[j])) != edges.end()){ cnt++; } } if(cnt == 8){ anchor[0] = aa[i]; } else if(cnt == 1){ anchor[9] = aa[i]; } } int cur = anchor[9]; for(int i = 9;i >= 2;i--){ for(int v : adj[cur]){ if(v != anchor[0] && anchorSet.find(v) != anchorSet.end()){ if(i == 9 || v != anchor[i+1]){ cur = v; anchor[i-1] = cur; break; } } } } bool extras[n]; fill(extras,extras+n,false); unordered_map<int,int> anchorMap; //cout << "\n"; for(int i =0 ;i < 10;i++){ //cout << anchor[i] << " "; extras[anchor[i]] = true; anchorMap[anchor[i]] = i; } extras[x] = true; extras[y] = true; //cout << "\n"; unordered_map<int,int> normalMap; for(int u = 0;u < n;u++){ int value = 0; if(extras[u]) continue; for(int v : adj[u]){ if(!extras[v]) continue; int bit = anchorMap[v]; value |= (1 << bit); } int pos = lower_bound(nums.begin(),nums.end(),value) - nums.begin(); normalMap[u] = pos; //cout << u << " " << pos << "\n"; } vector<ii> finalEdges; for(int i = 0;i < m;i++){ int u = C[i]; int v = D[i]; if(extras[u] || extras[v]) continue; finalEdges.push_back(ii(normalMap[u],normalMap[v])); } //cout << "\n"; //for(ii k : finalEdges) cout << k.first << " " << k.second << "\n"; InitMap(on, finalEdges.size()); for(ii k : finalEdges) MakeMap(k.first,k.second); }

Compilation message (stderr)

Alice.cpp: In function 'void Alice(int, int, int*, int*)':
Alice.cpp:16:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(nums.size() == n) break;
      ~~~~~~~~~~~~^~~~
Alice.cpp:54:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0;i < edges.size();i++){
                ~~^~~~~~~~~~~~~~
Alice.cpp:6:6: warning: unused variable 'cnt' [-Wunused-variable]
  int cnt = 0;
      ^~~

Bob.cpp: In member function 'size_t hashii::operator()(const std::pair<int, int>*) const':
Bob.cpp:8:18: error: request for member 'first' in 'x', which is of pointer type 'const std::pair<int, int>*' (maybe you meant to use '->' ?)
         return x.first ^ x.second;
                  ^~~~~
Bob.cpp:8:28: error: request for member 'second' in 'x', which is of pointer type 'const std::pair<int, int>*' (maybe you meant to use '->' ?)
         return x.first ^ x.second;
                            ^~~~~~
In file included from /usr/include/c++/7/bits/hashtable.h:35:0,
                 from /usr/include/c++/7/unordered_map:47,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:117,
                 from Bob.cpp:2:
/usr/include/c++/7/bits/hashtable_policy.h: In instantiation of 'struct std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii>':
/usr/include/c++/7/type_traits:143:12:   required from 'struct std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> >'
/usr/include/c++/7/type_traits:154:31:   required from 'struct std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
/usr/include/c++/7/bits/unordered_set.h:98:63:   required from 'class std::unordered_set<std::pair<int, int>, hashii>'
Bob.cpp:16:28:   required from here
/usr/include/c++/7/bits/hashtable_policy.h:87:34: error: no match for call to '(const hashii) (const std::pair<int, int>&)'
  noexcept(declval<const _Hash&>()(declval<const _Key&>()))>
           ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Bob.cpp:7:12: note: candidate: size_t hashii::operator()(const std::pair<int, int>*) const
     size_t operator()(const pair<int,int>* x) const {
            ^~~~~~~~
Bob.cpp:7:12: note:   no known conversion for argument 1 from 'const std::pair<int, int>' to 'const std::pair<int, int>*'
In file included from /usr/include/c++/7/bits/move.h:54:0,
                 from /usr/include/c++/7/bits/nested_exception.h:40,
                 from /usr/include/c++/7/exception:143,
                 from /usr/include/c++/7/ios:39,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from Bob.cpp:2:
/usr/include/c++/7/type_traits: In instantiation of 'struct std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >':
/usr/include/c++/7/bits/unordered_set.h:98:63:   required from 'class std::unordered_set<std::pair<int, int>, hashii>'
Bob.cpp:16:28:   required from here
/usr/include/c++/7/type_traits:154:31: error: 'value' is not a member of 'std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> >'
     : public __bool_constant<!bool(_Pp::value)>
                               ^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/unordered_set:48:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:118,
                 from Bob.cpp:2:
/usr/include/c++/7/bits/unordered_set.h: In instantiation of 'class std::unordered_set<std::pair<int, int>, hashii>':
Bob.cpp:16:28:   required from here
/usr/include/c++/7/bits/unordered_set.h:98:63: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef __uset_hashtable<_Value, _Hash, _Pred, _Alloc>  _Hashtable;
                                                               ^~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:105:45: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::key_type key_type;
                                             ^~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:106:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::value_type value_type;
                                               ^~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:107:43: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::hasher hasher;
                                           ^~~~~~
/usr/include/c++/7/bits/unordered_set.h:108:46: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::key_equal key_equal;
                                              ^~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:109:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::allocator_type allocator_type;
                                                   ^~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:114:45: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::pointer  pointer;
                                             ^~~~~~~
/usr/include/c++/7/bits/unordered_set.h:115:50: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::const_pointer const_pointer;
                                                  ^~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:116:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::reference  reference;
                                               ^~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:117:52: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::const_reference const_reference;
                                                    ^~~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:118:46: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::iterator  iterator;
                                              ^~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:119:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::const_iterator const_iterator;
                                                   ^~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:120:51: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::local_iterator local_iterator;
                                                   ^~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:121:57: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::const_local_iterator const_local_iterator;
                                                         ^~~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:122:47: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::size_type  size_type;
                                               ^~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:123:52: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       typedef typename _Hashtable::difference_type difference_type;
                                                    ^~~~~~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:282:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       operator=(initializer_list<value_type> __l)
       ^~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:375:2: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
  emplace(_Args&&... __args)
  ^~~~~~~
/usr/include/c++/7/bits/unordered_set.h:419:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       insert(const value_type& __x)
       ^~~~~~
/usr/include/c++/7/bits/unordered_set.h:423:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       insert(value_type&& __x)
       ^~~~~~
/usr/include/c++/7/bits/unordered_set.h:478:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       insert(initializer_list<value_type> __l)
       ^~~~~~
/usr/include/c++/7/bits/unordered_set.h:679:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       equal_range(const key_type& __x)
       ^~~~~~~~~~~
/usr/include/c++/7/bits/unordered_set.h:683:7: error: 'value' is not a member of 'std::__not_<std::__and_<std::__is_fast_hash<hashii>, std::__detail::__is_noexcept_hash<std::pair<int, int>, hashii> > >'
       equal_range(const key_type& __x) const
       ^~~~~~~~~~~
Bob.cpp: In function 'void Bob(int, int, int*, int*)':
Bob.cpp:25:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(nums.size() == on) break;
      ~~~~~~~~~~~~^~~~~
Bob.cpp:33:29: error: no matching function for call to 'std::unordered_set<std::pair<int, int>, hashii>::insert(ii)'
   edges.insert(ii(C[i],D[i]));
                             ^
In file included from /usr/include/c++/7/unordered_set:48:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:118,
                 from Bob.cpp:2:
/usr/include/c++/7/bits/unordered_set.h:467:2: note: candidate: template<class _InputIterator> void std::unordered_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Value = std::pair<int, int>; _Hash = hashii; _Pred = std::equal_to<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >]
  insert(_InputIterator __first, _InputIterator __last)
  ^~~~~~
/usr/include/c++/7/bits/unordered_set.h:467:2: note:   template argument deduction/substitution failed:
Bob.cpp:33:29: note:   candidate expects 2 arguments, 1 provided
   edges.insert(ii(C[i],D[i]));
                             ^
Bob.cpp:34:29: error: no matching function for call to 'std::unordered_set<std::pair<int, int>, hashii>::insert(ii)'
   edges.insert(ii(D[i],C[i]));
                             ^
In file included from /usr/include/c++/7/unordered_set:48:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:118,
                 from Bob.cpp:2:
/usr/include/c++/7/bits/unordered_set.h:467:2: note: candidate: template<class _InputIterator> void std::unordered_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator, _InputIterator) [with _InputIterator = _InputIterator; _Value = std::pair<int, int>; _Hash = hashii; _Pred = std::equal_to<std::pair<int, int> >; _Alloc = std::allocator<std::pair<int, int> >]
  insert(_InputIterator __first, _InputIterator __last)
  ^~~~~~
/usr/include/c++/7/bits/unordered_set.h:467:2: note:   template argument deduction/substitution failed:
Bob.cpp:34:29: note:   candidate expects 2 arguments, 1 provided
   edges.insert(ii(D[i],C[i]));
                             ^
Bob.cpp:52:12: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'find'
   if(edges.find(ii(i,y)) != edges.end()){
            ^~~~
Bob.cpp:52:35: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'end'
   if(edges.find(ii(i,y)) != edges.end()){
                                   ^~~
Bob.cpp:68:13: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'find'
    if(edges.find(ii(aa[i],aa[j])) != edges.end()){
             ^~~~
Bob.cpp:68:44: error: 'class std::unordered_set<std::pair<int, int>, hashii>' has no member named 'end'
    if(edges.find(ii(aa[i],aa[j])) != edges.end()){
                                            ^~~