Submission details
Task:Wide delivery
Sender:aalto26fm_031
Submission time:2026-10-05 17:49:58 +0300
Language:C++ (C++23)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main(int, char**)':
input/code.cpp:37:28: error: no matching function for call to 'begin(std::pair<int, int>&)'
   37 |         for (auto u : adj[a]) {
      |                            ^
In file included from /usr/include/c++/13/bits/range_access.h:36,
                 from /usr/include/c++/13/string:53,
                 from /usr/include/c++/13/bits/locale_classes.h:40,
                 from /usr/include/c++/13/bits/ios_base.h:41,
                 from /usr/include/c++/13/ios:44,
                 from /usr/include/c++/13/ostream:40,
                 from /usr/include/c++/13/iostream:41,
                 from input/code.cpp:1:
/usr/include/c++/13/initializer_list:88:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(initializer_list<_Tp>)'
   88 |     begin(initializer_list<_Tp> __ils) noexcept
      |     ^~~~~
/usr/include/c++/13/initializer_list:88:5: note:   template argument deduction/substitution failed:
input/code.cpp:37:2...

Code

#include <iostream>
#include <vector>
#include <climits>
#include <queue>


int main(int argc, char **argv) {
    int n, m;
    std::cin >> n >> m;

    std::vector<std::pair<int, int>> adj;
    std::vector<int> distance(n+1, INT_MAX);
    std::priority_queue<std::pair<int, int>> q;
    std::vector<bool> processed(n+1, false);


    for (int i=0; i<m; i++) {
        int s, e, w;
        std::cin >> s >> e >> w;
        
        adj[s] = {e, w};
        adj[e] = {s, w};
    }

    distance[1] = 0;

    q.push({1, 0});

    while (!q.empty()) {
        int a = q.top().second;
        q.pop();

        if (processed[a]) continue;

        processed[a] = true;

        for (auto u : adj[a]) {
            int b = u.first(), w = u.second();

            if (distance[a]+w < distance[b]) {
                distance[b] = distance[a] + w;
                q.push({-distance[b], b});
            }
        }
    }

    for (int i=2; i<=n; i++) {
        std::cout << distance[i] << " ";
    }

    std::cout << std::endl;

    return 0;
}