Submission #1354374

#TimeUsernameProblemLanguageResultExecution timeMemory
1354374scalifrastico_098World Map (IOI25_worldmap)C++20
0 / 100
0 ms500 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std; 
#define ll long long
vector<vector<int>> ans, kl;
queue<int> h; vector<char> vis;
void dfs(int u)
{
  vis[u]=1; h.push(u); 
  for(auto x: kl[u]){if(vis[x])continue; dfs(x); h.push(u);}
}
vector<vector<int>> create_map(int n, int m, vector<int> a, vector<int> b) {
  kl.assign(n+1, vector<int>()); vector<int> o(n+1, 0); 
  vis.assign(n+1, 0);
  for(ll i=0; i<m; i++){kl[a[i]].push_back(b[i]); kl[b[i]].push_back(a[i]);} 
  for(int i=1; i<=n; i++){sort(kl[i].begin(), kl[i].end());}
  for(int i=1; i<=n; i++){if(!vis[i])dfs(i);}
  int y=(h.size())+2*n; ans.assign(y, vector<int>(3*n, -1)); int j=0;
  vector<vector<int>> di; 
  while(!h.empty())
  {
    int u=h.front(); h.pop(); vector<int> g(y, u); di.push_back(g);
    if(o[u]==0)
    {
      vector<int> p(y, u);
      int i=1; for(auto x: kl[u]){if(i>=y)break; p[i]=x; i+=2;}
      di.push_back(p); vector<int> l(y, u);di.push_back(l);
    }
    o[u]++;
  }
  for(int i=0; i<4*n; i++)
  {
    for(int j=0; j<3*n; j++){if(i-j>=0&&i-j<3*n)ans[i][j]=di[i-j][i];}
  }
  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...