Submission #893097

# Submission time Handle Problem Language Result Execution time Memory
893097 2023-12-26T13:51:47 Z raul2008487 Dreaming (IOI13_dreaming) C++17
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
#include "dreaming.h"
#define ll long long
#define pll pair<ll,ll>
#define vl vector<ll>
#define fi first
#define se second
#define in insert
#define all(v) v.begin(),v.end()
const int sz = 100005;
const ll inf = 1000000000000000;
using namespace std;
vector<pair<ll,ll>> adj[sz];
ll dis[sz][2], center, v1, v2, mx, cnt = -1;
bool used[sz];
vector<vector<ll>> path;
void trav(ll node){
    used[node] = 1;
    path[cnt].push_back(node);
    for(pll edge: adj[node]){
        if(!used[edge.fi]){
            trav(edge.fi);
        }
    }
}
void dfs(ll node, ll we, ll p){
    if(we > mx){
        v2 = node;
        mx = we;
    }
    for(pll edge: adj[node]){
        if(edge.fi != p){
            dfs(edge.fi, we + edge.se, node);
        }
    }
}
void caldis(ll node, ll we, ll p, ll type){
    dis[node][type] = we;
    for(pll edge: adj[node]){
        if(edge.fi != p){
            caldis(edge.fi, we + edge.se, node, type);
        }
    }
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
    ll n = N, m = M, i, j, ans = 0;
    for(i=1;i<=m;i++){
        adj[A[i]].push_back({B[i], T[i]});
        adj[B[i]].push_back({A[i], T[i]});
    }
    for(i=0;i<n;i++){
        if(!used[i]){
            cnt++;
            path.push_back(vl(0));
            trav(i);
        }
    }
    ll worst = inf;
    vl st;
    for(i=0;i<=cnt;i++){
        mx = -1, v1 = -1, v2 = -1;
        dfs(path[i][0], 0, -1);
        v1 = v2;
        mx = -1;
        dfs(v1, 0, -1);
        caldis(v1, 0, -1, 0);caldis(v2, 0, -1, 1);
        ans = max(ans, mx);
        ll pc = path[i][0], pb = max(dis[pc][0], dis[pc][1]);
        for(auto x: path[i]){
            if(max(dis[x][0], dis[x][1]) < pb){
                pb = max(dis[x][0], dis[x][1]);
            }
        }
        st.push_back(pb);
        //ans = max(ans, pb);
    }
    sort(all(pb));
    if(st.size() == 1){
        return ans;
    }
    else if(st.size() == 2){
        return max(ans, v[v.size() - 1] + v[v.size() - 2] + L);
    }
    return max({ans, v[v.size() - 1] + v[v.size() - 2] + L, v[v.size()-2] + v[v.size() - 3] + 2*L});
}

Compilation message

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:77:14: error: 'pb' was not declared in this scope
   77 |     sort(all(pb));
      |              ^~
dreaming.cpp:9:16: note: in definition of macro 'all'
    9 | #define all(v) v.begin(),v.end()
      |                ^
dreaming.cpp:82:25: error: 'v' was not declared in this scope
   82 |         return max(ans, v[v.size() - 1] + v[v.size() - 2] + L);
      |                         ^
dreaming.cpp:84:22: error: 'v' was not declared in this scope
   84 |     return max({ans, v[v.size() - 1] + v[v.size() - 2] + L, v[v.size()-2] + v[v.size() - 3] + 2*L});
      |                      ^
dreaming.cpp:84:99: error: no matching function for call to 'max(<brace-enclosed initializer list>)'
   84 |     return max({ans, v[v.size() - 1] + v[v.size() - 2] + L, v[v.size()-2] + v[v.size() - 3] + 2*L});
      |                                                                                                   ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from dreaming.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
dreaming.cpp:84:99: note:   candidate expects 2 arguments, 1 provided
   84 |     return max({ans, v[v.size() - 1] + v[v.size() - 2] + L, v[v.size()-2] + v[v.size() - 3] + 2*L});
      |                                                                                                   ^
In file included from /usr/include/c++/10/bits/specfun.h:45,
                 from /usr/include/c++/10/cmath:1927,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from dreaming.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
dreaming.cpp:84:99: note:   candidate expects 3 arguments, 1 provided
   84 |     return max({ans, v[v.size() - 1] + v[v.size() - 2] + L, v[v.size()-2] + v[v.size() - 3] + 2*L});
      |                                                                                                   ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from dreaming.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
dreaming.cpp:46:25: warning: unused variable 'j' [-Wunused-variable]
   46 |     ll n = N, m = M, i, j, ans = 0;
      |                         ^
dreaming.cpp:58:8: warning: unused variable 'worst' [-Wunused-variable]
   58 |     ll worst = inf;
      |        ^~~~~