Submission #1250486

#TimeUsernameProblemLanguageResultExecution timeMemory
1250486ogkostyaWorld Map (IOI25_worldmap)C++20
0 / 100
57 ms7496 KiB
#include "worldmap.h"

bool ff[100][100];
bool f[100];
std::vector<std::vector<int>> ans;

void dfs(int to, int from, int N)
{
  f[to] = true;

  ans.push_back(std::vector<int>(N, to));
  ans.push_back(std::vector<int>());
  for (int i = 1; i <= N; i++)
  {
    if (ff[to][i])
    {
      ans.back().push_back(i);
      ans.back().push_back(to);
    }
  }
  ans.push_back(std::vector<int>(N, to));

  bool ex = false;
  for (int i = 1; i <= N; i++)
  {
    if (ff[to][i] && !f[i])
    {
      dfs(i, to, N);
      ex = true;
    }
  }
  ans.push_back(std::vector<int>(N, from));
}

std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B)
{
  std::fill(&ff[0][0], &ff[0][0] + sizeof(ff), false);
  for (int i = 0; i < M; i++)
  {
    ff[A[i]][B[i]] = true;
    ff[B[i]][A[i]] = true;
  }
  std::fill(f, f + 100, false);

  ans.clear();
  dfs(1, 1, N);

  for (int i = 0; i < ans.size(); i++)
  {
    while (ans[i].size() < ans.size())
    {
      ans[i].push_back(ans[i].back());
    }
  }

  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...