Submission #110258

#TimeUsernameProblemLanguageResultExecution timeMemory
110258icandoitDreaming (IOI13_dreaming)C++14
Compilation error
0 ms0 KiB
#include "dreaming.h" #include <bits/stdc++.h> #define y second #define x first #define ll long long int #define pb push_back #define pii pair<int,int> using namespace std; const int N=1e5+7; vector<pair<int,int> > adj[N]; bool vis[N]; void dfs(int node,int p,int length,pii &ans){ vis[node]=1; for(auto vertice:adj[node]){ if(vertice.x==p){ continue; } dfs(vertice.x,node,length+vertice.y,ans); } if(length>ans.y){ ans.x=node; ans.y=length; } } bool find(int s,int e,int p,vector<int> &path){ if(s==e){ return true; } for(int v:adj[s]){ if(v==p)continue; if(find(v,e,u,path)){ path.push_back(v); return true; } } return false; } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { int n=N; int m=M; int l=L; vector<int> radius; map<pair<int,int>,int> cost; for(int i=0; i<M; i++) { int u=A[i]; int v=B[i]; int w=T[i]; adj[u].pb({v,w}); adj[v].pb({u,w}); cost[{u,v}]=cost[{v,u}]=w; } for(int i=0;i<n;i++){ if(vis[i]) continue; pii s={-1,-1}; dfs(i,-1,0,s); pii e={-1,-1}; dfs(s.first,-1,0,e); int diameter=e.y; vector<int> path; find(s.x,e.x,path); int sz=(int)path.size(); int rad=diameter; int cur=diameter; for(int j=1;j<sz;j++){ cur-=cost[{path[j],path[j-1]}]; rad=min(rad,max(diameter-cur,cur)); } radius.push_back(rad); } int szz=(int)radius.size(); sort(radius.rbegin(),radius.rend()); int lol=radius[0]; if(szz>=2){ lol=max(lol,radius[0]+radius[1]+l); } if(szz>=3){ lol=max(lol,radius[1]+radius[2]+2*l); } return lol; }

Compilation message (stderr)

dreaming.cpp: In function 'bool find(int, int, int, std::vector<int>&)':
dreaming.cpp:29:18: error: cannot convert 'std::pair<int, int>' to 'int' in initialization
   for(int v:adj[s]){
                  ^
dreaming.cpp:31:19: error: 'u' was not declared in this scope
       if(find(v,e,u,path)){
                   ^
dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:40:6: warning: unused variable 'm' [-Wunused-variable]
  int m=M;
      ^
In file included from /usr/include/c++/7/algorithm:62:0,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:65,
                 from dreaming.cpp:2:
/usr/include/c++/7/bits/stl_algo.h: In instantiation of '_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = int; _Predicate = __gnu_cxx::__ops::_Iter_equals_val<const std::vector<int> >]':
/usr/include/c++/7/bits/stl_algo.h:3907:28:   required from '_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = int; _Tp = std::vector<int>]'
dreaming.cpp:60:27:   required from here
/usr/include/c++/7/bits/stl_algo.h:162:34: error: no matching function for call to '__iterator_category(int&)'
          std::__iterator_category(__first));
          ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
In file included from /usr/include/c++/7/bits/stl_algobase.h:65:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/ios:40,
                 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 dreaming.cpp:2:
/usr/include/c++/7/bits/stl_iterator_base_types.h:205:5: note: candidate: template<class _Iter> constexpr typename std::iterator_traits<_Iterator>::iterator_category std::__iterator_category(const _Iter&)
     __iterator_category(const _Iter&)
     ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/7/bits/stl_iterator_base_types.h:205:5: note:   template argument deduction/substitution failed:
/usr/include/c++/7/bits/stl_iterator_base_types.h: In substitution of 'template<class _Iter> constexpr typename std::iterator_traits<_Iterator>::iterator_category std::__iterator_category(const _Iter&) [with _Iter = int]':
/usr/include/c++/7/bits/stl_algo.h:162:34:   required from '_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = int; _Predicate = __gnu_cxx::__ops::_Iter_equals_val<const std::vector<int> >]'
/usr/include/c++/7/bits/stl_algo.h:3907:28:   required from '_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = int; _Tp = std::vector<int>]'
dreaming.cpp:60:27:   required from here
/usr/include/c++/7/bits/stl_iterator_base_types.h:205:5: error: no type named 'iterator_category' in 'struct std::iterator_traits<int>'