Submission details
Task:3SUM
Sender:aalto26gm_039
Submission time:2026-10-19 17:48:23 +0300
Language:C++ (C++23)
Status:COMPILE ERROR

Compiler report

In file included from input/code.cpp:3:
/usr/include/c++/13/format: In instantiation of 'class std::__format::_Checking_scanner<char, std::vector<int, std::allocator<int> > >':
/usr/include/c++/13/format:3750:4:   required from 'consteval std::basic_format_string<_CharT, _Args>::basic_format_string(const _Tp&) [with _Tp = char [3]; _CharT = char; _Args = {std::vector<int, std::allocator<int> >&}]'
input/code.cpp:28:78:   required from here
/usr/include/c++/13/format:3672:10: error: static assertion failed: std::formatter must be specialized for each type being formatted
 3672 |         (is_default_constructible_v<formatter<_Args, _CharT>> && ...),
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/format:3672:10: note: 'std::is_default_constructible_v<std::formatter<std::vector<int>, char> >' evaluates to false
/usr/include/c++/13/format: In instantiation of 'constexpr void std::__format::_Checking_scanner<_CharT, _Args>::_M_parse_format_spec(std:...

Code

#include <iostream>
#include <vector>
#include <format>

struct conn {
    int node;
    std::vector<int> path_until_node;
};

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

    std::vector<std::vector<bool>> adj(n+1, std::vector<bool>(n+1, true));
    for (int i=0; i<m; i++) {
        int a, b;
        std::cin >> a >> b;
        adj.at(a).at(b) = false;
        adj.at(b).at(a) = false;
    }

    //std::cout << std::format("{}", adj) << std::endl;

    std::vector<conn> to_visit = {{1, {1}}};
    std::vector<int> visited(n+1, false);

    while (!to_visit.empty()) {
        for (conn cn : to_visit) std::cout << cn.node <<   " " << std::format("{}", cn.path_until_node) << std::endl;
        conn info = to_visit.back();
        int cur_node = info.node;
        visited[cur_node] = true;
        to_visit.pop_back();

        for (int i=1; i<=n; i++) {
            if (visited.at(i)) continue;

            if (!adj.at(cur_node).at(i)) continue;

            if (i == n) {
                std::cout << info.path_until_node.size() + 1 << std::endl;
                for (int j : info.path_until_node) {
                    std::cout << i << " ";
                }
                std::cout << i << std::endl;
                return 0;
            }

            std::vector<int> path_until_node(info.path_until_node);
            std::cout << "CN: " << cur_node << std::format("{}", path_until_node) << std::endl;
            path_until_node.push_back(cur_node);
            to_visit.push_back({i, path_until_node});
        }
    }

    std::cout << 0 << std::endl;

    return 0;
}