제출 #1250919

#제출 시각아이디문제언어결과실행 시간메모리
1250919David_M세계 지도 (IOI25_worldmap)C++20
컴파일 에러
0 ms0 KiB
#include "worldmap.h"

using namespace std;

vector<int> v[50];
int n, k;
int f[50];

void dfs(int x, int pa, vector<vector<int>> &ans) {

    f[x] = 1;

    for (int i = 0; i <= k; ++i) {
        ans[i][k - i] = x;
    }
    k++;

    for (int y : v[x]) {
        if(f[y]) continue;
        dfs(y, x);
    }

    int e = max(0, k - 2 * n + 1);

    if(x != 0) {
        for (int y : v[x]) {
            if(f[y] == 2) continue;
            assert(f[y] == 1);
            ans[e][k - e] = y;
            e++;
        }
        k++;
        while (e <= min(k, 2 * N - 1)) {
            ans[e][k - e] = x;
            e++;
        }
        k++;
    }

    for (int i = 0; i <= k; ++i) {
        ans[i][k - 1] = pa;
    }
    k++;
    f[x] = 2;
}


vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
  vector<vector<int>> ans(2 * N, vector<int>(2 * N, 1));
  n = N;

  for (int i = 0; i < 50; ++i) {
    v[i].clear();
    f[i] = 0;
  }

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

  dfs(0, 0, ans);

//  assert(k == 4 * N - 2);

  while (k <= 4 * N - 2) {
    for (int i = max(0, k - 2 * N + 1); i <= min(k, 2 * N - 1); ++i) {
        ans[i][j] = 0;
    }
    k++;
  }

  return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

worldmap.cpp: In function 'void dfs(int, int, std::vector<std::vector<int> >&)':
worldmap.cpp:20:12: error: too few arguments to function 'void dfs(int, int, std::vector<std::vector<int> >&)'
   20 |         dfs(y, x);
      |         ~~~^~~~~~
worldmap.cpp:9:6: note: declared here
    9 | void dfs(int x, int pa, vector<vector<int>> &ans) {
      |      ^~~
worldmap.cpp:28:13: error: 'assert' was not declared in this scope
   28 |             assert(f[y] == 1);
      |             ^~~~~~
worldmap.cpp:2:1: note: 'assert' is defined in header '<cassert>'; did you forget to '#include <cassert>'?
    1 | #include "worldmap.h"
  +++ |+#include <cassert>
    2 | 
worldmap.cpp:33:32: error: 'N' was not declared in this scope
   33 |         while (e <= min(k, 2 * N - 1)) {
      |                                ^
worldmap.cpp: In function 'std::vector<std::vector<int> > create_map(int, int, std::vector<int>, std::vector<int>)':
worldmap.cpp:68:16: error: 'j' was not declared in this scope
   68 |         ans[i][j] = 0;
      |                ^