Submission #471370

#TimeUsernameProblemLanguageResultExecution timeMemory
471370PiejanVDCDreaming (IOI13_dreaming)C++17
Compilation error
0 ms0 KiB
#include "dreaming.h" #include <bits/stdc++.h> using namespace std; vector<vector<pair<long long,long long>>>adj; bool vis[100000]; map<long long,long long>mp,cnt; vector<long long>connect; long long dd(long long node, long long e) { vis[node]=true; long long mx = 0, prev = -1; for(auto z : adj[node]) { if(z.first == e) continue; auto ret = dd(z.first,node); if(mx < ret+z.second) mx=ret+z.second,prev=z.first; } mp[node]=prev,cnt[node]=mx; return mx; } pair<long long,long long> d(long long node, long long e) { vis[node]=true; pair<long long,long long>mx = {0,node}; for(auto z : adj[node]) { if(z.first == e) continue; auto ret = d(z.first,node); if(mx.first < ret.first+z.second) mx.first=ret.first+z.second,mx.second=ret.second; } return mx; } void dia(long long node) { long long nd = d(node,-1).second; auto ans = dd(nd,-1); long long curr = nd; while(cnt[mp[curr]] > ans/2) curr=mp[curr]; if(cnt[curr] <= ans - cnt[mp[curr]]) { connect.push_back(curr); } else connect.push_back(mp[curr]); return; } long long travelTime(long long n, long long m, long long l, long long a[], long long b[], long long t[]) { adj.resize(n); for(long long i = 0 ; i < m ; i++) { adj[a[i]].push_back(make_pair(b[i],t[i])); adj[b[i]].push_back(make_pair(a[i],t[i])); } for(long long i = 0 ; i < n ; i++) { if(vis[i]) continue; dia(i); } for(long long i = 0 ; i < connect.size()-1 ; i++) { adj[connect[i]].push_back(make_pair(connect[i+1],l)); adj[connect[i+1]].push_back(make_pair(connect[i],l)); } long long edge = d(0,-1).second; return d(edge,-1).first; }

Compilation message (stderr)

dreaming.cpp: In function 'long long int travelTime(long long int, long long int, long long int, long long int*, long long int*, long long int*)':
dreaming.cpp:56:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |  for(long long i = 0 ; i < connect.size()-1 ; i++) {
      |                        ~~^~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccpRnzMo.o: in function `main':
grader.c:(.text.startup+0xd1): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status