Submission #960498

# Submission time Handle Problem Language Result Execution time Memory
960498 2024-04-10T14:27:43 Z OIaspirant2307 Olympic Bus (JOI20_ho_t4) C++17
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
#define int long long
#define nl endl
using namespace std;
 
multiset<pair<int,int> > graph[201];
 
int Dijkstra(int u, int v){
    priority_queue<pair<int,int>, vector<pair<int,int> >, greater<pair<int,int> > > pq;
    vector<int> vis(203, 0);
    vector<int> dist(203, 1e17);
 
    dist[u] = 0;
    pq.push(make_pair(0, u));
 
    while(!pq.empty()){
        int p = pq.top().second;
        int dis = pq.top().first;
        pq.pop();
 
        if(vis[p]) continue;
        vis[p] = 1;
 
        for(auto ch : graph[p]){
            if(dis + ch.second < dist[ch.first]){
                dist[ch.first] = dis + ch.second;
                pq.push(make_pair(dist[ch.first], ch.first));
            }
        }
    }
 
    return dist[v];
}
 
signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(NULL);cout.tie(NULL);
 
    int n, m;
    cin>>n>>m;
 
    vector<vector<int> > dist(n+1, vector<int>(n+1, 1e18));
    int U[m], V[m], c[m], d[m];
    for(int i=0; i<m; i++){
        cin>>U[i]>>V[i]>>c[i]>>d[i];
        graph[U[i]].insert(make_pair(V[i], c[i]));
        dist[U[i]][V[i]] = min(c[i], dist[U[i]][V[i]]);
    }
    for(int i=0; i<=n; i++) dist[i][i] = 0;
 
    for(int k=1; k<=n; k++){
        for(int i=1; i<=n; i++){
            for(int j=1; j<=n; j++){
                dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
            }
        }
    }
 
    int ans = min(1e17, dist[1][n] + dist[n][1]);
    //cout<<ans<<nl;
    for(int i=0; i<m; i++){
        int u = U[i], v = V[i];
        if(min(dist[1][n], dist[1][v] + c[i] + dist[u][n]) + min(dist[n][1], dist[n][v] + c[i] + dist[u][1]) < ans){
          graph[u].erase(graph[u].find(make_pair(v, c[i])));
          graph[v].insert(make_pair(u, c[i]));
          ans = min(ans, Dijkstra(1, n) + Dijkstra(n, 1) + d[i]);
          graph[v].erase(graph[v].find(make_pair(u, c[i])));
          graph[u].insert(make_pair(v, c[i]));
        }
    }
 
    if(ans == 1e17) cout<<-1;
    else cout<<ans;
}

Compilation message

ho_t4.cpp: In function 'int main()':
ho_t4.cpp:59:48: error: no matching function for call to 'min(double, __gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type)'
   59 |     int ans = min(1e17, dist[1][n] + dist[n][1]);
      |                                                ^
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 ho_t4.cpp:1:
/usr/include/c++/10/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++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
ho_t4.cpp:59:48: note:   deduced conflicting types for parameter 'const _Tp' ('double' and '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'})
   59 |     int ans = min(1e17, dist[1][n] + dist[n][1]);
      |                                                ^
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 ho_t4.cpp:1:
/usr/include/c++/10/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++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
ho_t4.cpp:59:48: note:   deduced conflicting types for parameter 'const _Tp' ('double' and '__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type' {aka 'long long int'})
   59 |     int ans = min(1e17, dist[1][n] + dist[n][1]);
      |                                                ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from ho_t4.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
ho_t4.cpp:59:48: note:   mismatched types 'std::initializer_list<_Tp>' and 'double'
   59 |     int ans = min(1e17, dist[1][n] + dist[n][1]);
      |                                                ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from ho_t4.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
ho_t4.cpp:59:48: note:   mismatched types 'std::initializer_list<_Tp>' and 'double'
   59 |     int ans = min(1e17, dist[1][n] + dist[n][1]);
      |                                                ^