Submission #1111217

#TimeUsernameProblemLanguageResultExecution timeMemory
1111217nikolashamiDreaming (IOI13_dreaming)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #include "dreaming.h" const int N=1e5+4; vector<array<int,2>>adj[N]; int d[N][2],vis[N]; vector<int>passed,path; void dfs(int u,bool x){ passed.push_back(u); vis[u]=1; for(auto&[v,w]:adj[u]){ if(vis[v]) continue; d[v][x]=d[u][x]+w; dfs(v,x); } } bool findpath(int u,int p,int s,int e){ if(u==e){ path.push_back(e); return 1; } for(auto&[v,w]:adj[u]){ if(v==p) continue; if(findpath(v,u,s,e)){ path.push_back(v); return 1; } } return 0; } void unq(vector<int>&v){ sort(v.begin(),v.end()); v.erase(unique(v.begin(),v.end()),v.end()); } int findmxlen(int node){ d[node][0]=0; dfs(node,0); unq(passed); int mx=-1,kraj1,kraj2; for(int u:passed){ if(d[u][0]>mx){ mx=d[u][0]; kraj1=u; } vis[u]=0; } passed.clear(); d[kraj1][0]=0; dfs(kraj1,0); unq(passed); mx=-1; for(int u:passed){ if(d[u][0]>mx){ mx=d[u][0]; kraj2=u; } vis[u]=0; } passed.clear(); d[kraj2][1]=0; dfs(kraj2,1); unq(passed); for(int u:passed){ vis[u]=0; par[u]=0; } path.clear(); findpath(kraj1,-1,kraj1,kraj2); unq(passed); for(int u:passed) vis[u]=1; int mnmxlen=2e9; for(int v:path) mnmxlen=min(mnmxlen,max(d[v][0],d[v][1])); passed.clear(); return mnmxlen; } int jednostablo(int node=1){ d[node][0]=0; dfs(node,0); int mx=-1,kraj1,kraj2; for(auto&u:passed){ if(d[u][0]>mx){ mx=d[u][0]; kraj1=u; } vis[u]=0; } passed.clear(); d[kraj1][0]=0; dfs(kraj1,0); mx=-1; for(auto&u:passed) if(d[u][0]>mx) mx=d[u][0]; return mx; } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { int n=M,m=M,l=L; for(int i=0,u,v,w;i<m;++i){ u=A[i]; v=B[i]; w=T[i]; ++u,++v; adj[u].push_back({v,w}); adj[v].push_back({u,w}); } if(m==n-1) return jednostablo(); vector<int>poludijametri; for(int i=1;i<=n;++i){ if(vis[i]) continue; poludijametri.push_back(findmxlen(i)); } sort(poludijametri.rbegin(),poludijametri.rend()); return poludijametri[0]+poludijametri[1]+l; }

Compilation message (stderr)

dreaming.cpp: In function 'int findmxlen(int)':
dreaming.cpp:74:9: error: 'par' was not declared in this scope; did you mean '__pstl::execution::v1::par'?
   74 |         par[u]=0;
      |         ^~~
      |         __pstl::execution::v1::par
In file included from /usr/include/c++/10/pstl/glue_algorithm_defs.h:15,
                 from /usr/include/c++/10/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from dreaming.cpp:1:
/usr/include/c++/10/pstl/execution_defs.h:111:27: note: '__pstl::execution::v1::par' declared here
  111 | constexpr parallel_policy par{};
      |                           ^~~
dreaming.cpp: In function 'int jednostablo(int)':
dreaming.cpp:91:21: warning: unused variable 'kraj2' [-Wunused-variable]
   91 |     int mx=-1,kraj1,kraj2;
      |                     ^~~~~