Language: C++

#include <bits/stdc++.h>

using namespace std;

#define REP(i,n) for(int i = 0; i < (int)(n); i++)

const int64_t INF = 0x100000000000000;

int main(){
  int n, m, p;
  cin >> n >> m >> p;
  vector<tuple<int, int, int> > e;
  REP(i, m){
    int a, b, c;
    cin >> a >> b >> c;
    --a, --b;
    c -= p;
    e.push_back(make_tuple(a, b, -c));
  }
  vector<int64_t> v(n);
  REP(i, n) if(i > 0) v[i] = INF;
  REP(i, n - 1){
    for(auto x: e){
      int s, t, c;
      tie(s, t, c) = x;
      v[t] = min(v[t], v[s] + c);
    }
  }
  vector<int64_t> vs = v;
  for(auto x: e){
    int s, t, c;
    tie(s, t, c) = x;
    if(v[s] < INF / 2 && v[s] + c < v[t]){
      vs[t] = -INF;
    }
  }
  vector<int64_t> v2(n);
  REP(i, n) if(i < n - 1) v2[i] = INF;
  REP(i, n - 1){
    for(auto x: e){
      int s, t, c;
      tie(s, t, c) = x;
      v2[s] = min(v2[s], v2[t] + c);
    }
  }
  vector<int64_t> vt = v2;
  for(auto x: e){
    int s, t, c;
    tie(s, t, c) = x;
    if(v2[t] < INF / 2 && v2[t] + c < v2[s]){
      vt[s] = -INF;
    }
  }
  REP(i, n){
    if(vs[i] == -INF && vt[i] == -INF){
      cout << -1 << endl;
      return 0;
    }
  }
  cout << max(0ll, -vs[n - 1]) << endl;
  return 0;
}


Compiler output:
a.cc: In function 'int main()':
a.cc:60:14: error: no matching function for call to 'max(long long int, __gnu_cxx::__alloc_traits<std::allocator<long int>, long int>::value_type)'
   60 |   cout << max(0ll, -vs[n - 1]) << endl;
      |           ~~~^~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/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++/14/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
a.cc:60:14: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and '__gnu_cxx::__alloc_traits<std::allocator<long int>, long int>::value_type' {aka 'long int'})
   60 |   cout << max(0ll, -vs[n - 1]) << endl;
      |           ~~~^~~~~~~~~~~~~~~~~
/usr/include/c++/14/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++/14/bits/stl_algobase.h:303:5: note:   candidate expects 3 arguments, 2 provided
In file included from /usr/include/c++/14/algorithm:61:
/usr/include/c++/14/bits/stl_algo.h:5706:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(initializer_list<_Tp>)'
 5706 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5706:5: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/14/bits/stl_algo.h:5716:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(initializer_list<_Tp>, _Compare)'
 5716 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5716:5: note:   template argument deduction/substitution failed:
a.cc:60:14: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   60 |   cout << max(0ll, -vs[n - 1]) << endl;
      |           ~~~^~~~~~~~~~~~~~~~~