Submission #1256546

#TimeUsernameProblemLanguageResultExecution timeMemory
1256546ThylOneWorld Map (IOI25_worldmap)C++20
0 / 100
0 ms328 KiB
#include "worldmap.h"
#include <bits/stdc++.h>

using namespace std;
using grid = vector<vector<int>>;

vector<int> links[40];
vector<vector<int>> euleur_tour;
bool mem[40];
int K;
void uniform_line(int i){
  euleur_tour.push_back({});
  euleur_tour[euleur_tour.size()-1].resize(K, i);
}
void dfs(int node){
  uniform_line(node);
  mem[node] = true;
  for(int u:links[node]){
    if(mem[u])continue;
    dfs(u);
    uniform_line(node);
  }
}
grid create_map(int N, int M, std::vector<int> A, std::vector<int> B) {
  for(int i = 0 ; i < N ; i++)links[i].clear();
  euleur_tour.clear();
  K  = 2*N-1;
  fill(mem, mem+40,false);
  grid ans(K, std::vector<int>(K, 1));
  
  for(int i = 0 ; i < M ; i++){
    A[i]--;
    B[i]--;
    links[A[i]].push_back(B[i]);
    links[B[i]].push_back(A[i]);
  }
  dfs(0);
  cerr << N << " " << euleur_tour.size() << endl;
  //assert(euleur_tour.size()==2*N-2);
  for(int i =0 ; i < euleur_tour.size() ;i++){
    ans[i] = euleur_tour[i];
  }
  for(int i = euleur_tour.size(); i < K ; i++){
    ans[i] = ans[euleur_tour.size()-1];
  }
  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...