Submission #1228040

#TimeUsernameProblemLanguageResultExecution timeMemory
1228040peraCyberland (APIO23_cyberland)C++20
Compilation error
0 ms0 KiB
#include "cyberland.h" #include <bits/stdc++.h> #define LL __int128 #define int __int128 using namespace std; double solve(int N, int M, int K, int H, std::vector<int> x, std::vector<int> y, std::vector<int> c, std::vector<int> arr) { vector<vector<pair<int , LL>>> g(N); for(int i = 0;i < M;i ++){ g[x[i]].emplace_back(y[i] , c[i]); g[y[i]].emplace_back(x[i] , c[i]); } K = min(K , 30); vector<vector<LL>> dist(N , vector<LL>(K + 1 , -1)); priority_queue<tuple<LL , int , int> , vector<tuple<LL , int , int>> , greater<tuple<LL , int , int>>> pq; double ans = -1; vector<bool> vis(N); vis[0] = 0; function<void(int)> dfs = [&](int u){ for(auto [v , w] : g[u]){ if(vis[v] == false){ vis[v] = true; dfs(v); } } }; dfs(0); for(int i = 0;i < N;i ++){ if(vis[i] && (i == 0 || arr[i] == 0)){ dist[i][0] = 0; pq.push(tuple<LL , int , int>{0 , i , 0}); } } while((int)pq.size()){ auto [D , u , x] = pq.top(); pq.pop(); if(dist[u][x] != D){ continue; } if(u == H){ long double S = D; for(int i = 0;i < x;i ++){ S /= 2.0; } if(ans == -1){ ans = S; }else{ ans = min(ans , (double)S); } continue; } for(auto [v , w] : g[u]){ LL nD = D + w * (1LL << x); if(dist[v][x] == -1 || dist[v][x] > nD){ dist[v][x] = nD; pq.push(tuple<LL , int , int>{dist[v][x] , v , x}); } if(arr[v] == 2 && x < K){ ++x; if(dist[v][x] == -1 || dist[v][x] > nD){ dist[v][x] = nD; pq.push(tuple<LL , int , int>{dist[v][x] , v , x}); } } } } return (double)ans; }

Compilation message (stderr)

cyberland.cpp: In function 'double solve(__int128, __int128, __int128, __int128, std::vector<__int128>, std::vector<__int128>, std::vector<__int128>, std::vector<__int128>)':
cyberland.cpp:13:11: error: no matching function for call to 'min(__int128&, int)'
   13 |    K = min(K , 30);
      |        ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from cyberland.h:1,
                 from cyberland.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
cyberland.cpp:13:11: note:   deduced conflicting types for parameter 'const _Tp' ('__int128' and 'int')
   13 |    K = min(K , 30);
      |        ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from cyberland.h:1,
                 from cyberland.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
cyberland.cpp:13:11: note:   deduced conflicting types for parameter 'const _Tp' ('__int128' and 'int')
   13 |    K = min(K , 30);
      |        ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from cyberland.h:1,
                 from cyberland.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
cyberland.cpp:13:11: note:   mismatched types 'std::initializer_list<_Tp>' and '__int128'
   13 |    K = min(K , 30);
      |        ~~~^~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from cyberland.h:1,
                 from cyberland.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
cyberland.cpp:13:11: note:   mismatched types 'std::initializer_list<_Tp>' and '__int128'
   13 |    K = min(K , 30);
      |        ~~~^~~~~~~~