Submission #1315685

#TimeUsernameProblemLanguageResultExecution timeMemory
1315685jumpDreaming (IOI13_dreaming)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "dreaming.h"
#define Big_INT long long
Big_INT maxdist1[100010];
Big_INT maxdist2[100010];
Big_INT maxdist3[100010];
std::vector<std::vector<std::pair<Big_INT,Big_INT>>> adj;
std::vector<Big_INT> currentNum;
void bfs(Big_INT start){
    std::queue<std::pair<Big_INT,Big_INT>> q;
    q.push({start,0});
    maxdist1[start]=0;
    while(!q.empty()){
        Big_INT curr = q.front().first;
        currentNum.push_back(curr);
        Big_INT currw = q.front().second;
        q.pop();
        for(auto [to,w]:adj[curr]){
            if(maxdist1[to]==-1){
                maxdist1[to]=currw+w;
                q.push({to,currw+w});
            }
        }
    }
}
void bfs2(Big_INT start){
    std::queue<std::pair<Big_INT,Big_INT>> q;
    q.push({start,0});
    maxdist2[start]=0;
    while(!q.empty()){
        Big_INT curr = q.front().first;
        //currentNum.push_back(curr);
        Big_INT currw = q.front().second;
        q.pop();
        for(auto [to,w]:adj[curr]){
            if(maxdist2[to]==-1){
                maxdist2[to]=currw+w;
                q.push({to,currw+w});
            }
        }
    }
}
void bfs3(Big_INT start){
    std::queue<std::pair<Big_INT,Big_INT>> q;
    q.push({start,0});
    maxdist3[start]=0;
    while(!q.empty()){
        Big_INT curr = q.front().first;
        //currentNum.push_back(curr);
        Big_INT currw = q.front().second;
        q.pop();
        for(auto [to,w]:adj[curr]){
            if(maxdist3[to]==-1){
                maxdist3[to]=currw+w;
                q.push({to,currw+w});
            }
        }
    }
}
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
    adj.resize(N+5);
    for(Big_INT i=0;i<M;i++){
        adj[A[i]].push_back({B[i],T[i]});
        adj[B[i]].push_back({A[i],T[i]});
    }
    for(Big_INT i=0;i<N;i++){
        maxdist1[i]=-1;
        maxdist2[i]=-1;
        maxdist3[i]=-1;
    }
    std::vector<Big_INT> value;
    int maxincomvalue=0;
    for(Big_INT i=0;i<N;i++){
        if(maxdist1[i]==-1){
            bfs(i);
            Big_INT nodeA=i,distA=0;
            for(auto vNode:currentNum){
                if(maxdist1[vNode]>distA){
                    nodeA=vNode;
                    distA=maxdist1[vNode];
                }
            }
            bfs2(nodeA);
            Big_INT nodeB=nodeA,distB=0;
            for(auto vNode:currentNum){
                if(maxdist2[vNode]>distB){
                    nodeB=vNode;
                    distB=maxdist2[vNode];
                }
            }
            bfs3(nodeB);
            Big_INT minmax=1e18;
            Big_INT nnn=1e18;
            for(auto vNode:currentNum){
                minmax=std::min(minmax,std::max(maxdist2[vNode],maxdist3[vNode]));
                nnn=std::min(minmax,(maxdist2[vNode]+maxdist3[vNode]));
            }
            maxincomvalue=std::max(maxincomvalue,nnn);
            currentNum.resize(0);
            value.push_back(minmax);
        }
    }
    std::sort(value.begin(),value.end());
    
    Big_INT max=value.back();
    if(value.size()>=2)max+=value[value.size()-2]+L;
    if(value.size()>=3)max=std::max(max,value[value.size()-2]+value[value.size()-3]+2*L);
    max=std::max(maxincomvalue,max);
    // if(value.size()>=2){
    //     max=std::max(max,);
    // }
    return max;
}


int main()
{
   int n,m,l;
   std::cin >> n >> m >> l;
   int a[m],b[m],t[m];
   for(int i = 0;i < m;i++) std::cin >> a[i] >> b[i] >> t[i];
   std::cout << travelTime(n,m,l,a,b,t);
}

Compilation message (stderr)

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:98:35: error: no matching function for call to 'max(int&, long long int&)'
   98 |             maxincomvalue=std::max(maxincomvalue,nnn);
      |                           ~~~~~~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51,
                 from dreaming.cpp:1:
/usr/include/c++/13/bits/stl_algobase.h:257:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  257 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
dreaming.cpp:98:35: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   98 |             maxincomvalue=std::max(maxincomvalue,nnn);
      |                           ~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note:   template argument deduction/substitution failed:
dreaming.cpp:98:35: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   98 |             maxincomvalue=std::max(maxincomvalue,nnn);
      |                           ~~~~~~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61:
/usr/include/c++/13/bits/stl_algo.h:5795:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(initializer_list<_Tp>)'
 5795 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5795:5: note:   template argument deduction/substitution failed:
dreaming.cpp:98:35: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   98 |             maxincomvalue=std::max(maxincomvalue,nnn);
      |                           ~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:5805:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(initializer_list<_Tp>, _Compare)'
 5805 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5805:5: note:   template argument deduction/substitution failed:
dreaming.cpp:98:35: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   98 |             maxincomvalue=std::max(maxincomvalue,nnn);
      |                           ~~~~~~~~^~~~~~~~~~~~~~~~~~~
dreaming.cpp:108:17: error: no matching function for call to 'max(int&, long long int&)'
  108 |     max=std::max(maxincomvalue,max);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:257:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  257 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
dreaming.cpp:108:17: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  108 |     max=std::max(maxincomvalue,max);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note:   template argument deduction/substitution failed:
dreaming.cpp:108:17: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  108 |     max=std::max(maxincomvalue,max);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:5795:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(initializer_list<_Tp>)'
 5795 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5795:5: note:   template argument deduction/substitution failed:
dreaming.cpp:108:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  108 |     max=std::max(maxincomvalue,max);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algo.h:5805:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(initializer_list<_Tp>, _Compare)'
 5805 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algo.h:5805:5: note:   template argument deduction/substitution failed:
dreaming.cpp:108:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  108 |     max=std::max(maxincomvalue,max);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~