171422025-05-24 19:51:36tomi7Háromszögeléscpp17Compilation error
#include <vector>
#include <algorithm>

extern int query(int x, int y);

int dist(int n, int i, int j) {
    int left = std::min((i - 0 + n) % n, (j - 0 + n) % n);
    int right = std::min((0 - i + n) % n, (0 - j + n) % n);
    return std::max(left, right);
}

int solve(int n) {
    std::vector<std::tuple<int, int, int>> diagonals;

    // Összes nem szomszédos csúcspár (lehetséges átlók)
    for (int i = 0; i < n; ++i) {
        for (int j = i+1; j < n; ++j) {
            if ((j - i + n) % n == 1 || (i - j + n) % n == 1) continue; // szomszédos
            int d = dist(n, i, j);
            diagonals.push_back({d, i, j});
        }
    }

    // Távolság szerint rendezzük
    std::sort(diagonals.begin(), diagonals.end());

    // Kérdezés minimális távolságú átlóktól kezdve
    for (auto [d, i, j] : diagonals) {
        if (query(i, j)) {
            return i * n + j;
        }
    }

    return -1; // elvileg nem fordulhat elő, mert mindig van n-3 átló
}
Compilation error
open /var/local/lib/isolate/414/box/a.out: no such file or directory
main.cpp: In function 'int solve(int)':
main.cpp:20:32: error: no matching function for call to 'std::vector<std::tuple<int, int, int> >::push_back(<brace-enclosed initializer list>)'
   20 |             diagonals.push_back({d, i, j});
      |             ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from /usr/include/c++/12/vector:64,
                 from main.cpp:1:
/usr/include/c++/12/bits/stl_vector.h:1276:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::tuple<int, int, int>; _Alloc = std::allocator<std::tuple<int, int, int> >; value_type = std::tuple<int, int, int>]'
 1276 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/12/bits/stl_vector.h:1276:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const std::vector<std::tuple<int, int, int> >::value_type&' {aka 'const std::tuple<int, int, int>&'}
 1276 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/12/bits/stl_vector.h:1293:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(value_type&&) [with _Tp = std::tuple<int, int, int>; _Alloc = std::allocator<std::tuple<int, int, int> >; value_type = std::tuple<int, int, int>]'
 1293 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/12/bits/stl_vector.h:1293:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::tuple<int, int, int> >::value_type&&' {aka 'std::tuple<int, int, int>&&'}
 1293 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
main.cpp:28:15: error: 'std::tuple<int, int, int> <structured bindings>' has incomplete type
   28 |     for (auto [d, i, j] : diagonals) {
      |               ^~~~~~~~~
/usr/include/c++/12/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::~_Vector_base() [with _Tp = std::tuple<int, int, int>; _...