Submission #1249932

#TimeUsernameProblemLanguageResultExecution timeMemory
1249932PanosPaskWorld Map (IOI25_worldmap)C++20
Compilation error
0 ms0 KiB
#include "worldmap.h"
#define pb push_back

using namespace std;

vector<vector<int>> ans;
vector<vector<int>> adj_list;
vector<bool> visited;

int row;
int count = 0;

void fill(int color) {
    for (int i = 0; i < ans[row].size(); i++) {
        if (ans[row][i] == 0) {
            ans[row][i] = color;
        }
    }

    row++;
}

bool dfs(int node) {
    if (visited[node]) {
        return false;
    }

    visited[node] = true;
    count++;
    fill(node);
    if (count % 2) {
        for (int i = 0; i < adj_list[node].size(); i++) {
            ans[row][2 * i] = adj_list[node][i];
        }
        fill(node);
        fill(node);
    }

    for (auto neigh : adj_list[node]) {
        if (dfs(neigh)) {
            fill(node);
        }
    }

    return true;
}

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
    ans.assign(3 * N, vector<int>(3 * N, 0));
    adj_list.assign(N + 1, vector<int>());
    visited.assign(N + 1, false);

    for (int i = 0; i < M; i++) {
        adj_list[A[i]].pb(B[i]);
        adj_list[B[i]].pb(A[i]);
    }

    row = 0;
    dfs(1);

    while (row < ans.size()) {
        fill(ans[row - 1][0]);
    }

    return ans;
}

Compilation message (stderr)

worldmap.cpp: In function 'bool dfs(int)':
worldmap.cpp:29:5: error: reference to 'count' is ambiguous
   29 |     count++;
      |     ^~~~~
In file included from /usr/include/c++/11/vector:62,
                 from worldmap.h:1,
                 from worldmap.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:4059:5: note: candidates are: 'template<class _IIter, class _Tp> constexpr typename std::iterator_traits< <template-parameter-1-1> >::difference_type std::count(_IIter, _IIter, const _Tp&)'
 4059 |     count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
      |     ^~~~~
worldmap.cpp:11:5: note:                 'int count'
   11 | int count = 0;
      |     ^~~~~
worldmap.cpp:31:9: error: reference to 'count' is ambiguous
   31 |     if (count % 2) {
      |         ^~~~~
In file included from /usr/include/c++/11/vector:62,
                 from worldmap.h:1,
                 from worldmap.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:4059:5: note: candidates are: 'template<class _IIter, class _Tp> constexpr typename std::iterator_traits< <template-parameter-1-1> >::difference_type std::count(_IIter, _IIter, const _Tp&)'
 4059 |     count(_InputIterator __first, _InputIterator __last, const _Tp& __value)
      |     ^~~~~
worldmap.cpp:11:5: note:                 'int count'
   11 | int count = 0;
      |     ^~~~~