Submission #1261403

#TimeUsernameProblemLanguageResultExecution timeMemory
1261403riddlesWorld Map (IOI25_worldmap)C++20
0 / 100
0 ms324 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef map<ll, ll> mp;
typedef pair<ll, ll> pll;
typedef queue<ll> qi;
typedef vector<ll> vi;
typedef vector <vi> vvi;
typedef vector <pll> vpl;
typedef vector <string> vs;
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define f first
#define s second
#define pb push_back
#define all(x) begin(x), end(x)

int n, m;
vector<int> a, b;
vector<vector<int>> ans;
vector<vector<int>> con;
vector<vector<int>> tr(45);
vector<int> etour;
vector<bool> vis(45, 0);

void dfs1(int q) {
    vis[q]=true;
    for (auto u: con[q]) {
        if (!vis[u]) {
            tr[u].pb(q);
            tr[q].pb(u);
            dfs1(u);
        }
    }
}

void dfs2(int q, int p) {
    etour.pb(q);
    for (auto u: tr[q]) {
        if (u==p) continue;
        dfs2(u, q);
    }
    if (p!=-1) etour.pb(p);
}

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
  n=N;
  m=M;
  a=A;
  b=B;
  con=vector<vector<int>> (n);
  for(ll i=0; i<m; i++){
    con[a[i]].pb(b[i]);
    con[b[i]].pb(a[i]);
  }
  //no hay resize para de un solo la st 6 louco
  //ans=vector<vector<int>> (2*n, vector<int>(2*n, 1));
  dfs1(1);
  dfs2(1, -1);

  vector<int> v;
  set<int> su;
  for(auto u: etour){
    if(su.count(u)) v.pb(u);
    else{
      su.insert(u);
      v.pb(u);
      v.pb(u);
      v.pb(u);
    }
  }
  vector<int> as(n+1, 1);
  for(ll i=0; i<v.size(); i++) ans.pb(v);
  for(ll i=0; i<m; i++){
    int p=-1;
    for(ll j=0; j<v.size(); j++){
      if(v[j]==a[i]){
        p=j+1;
        break;
      }
    }
    ans[as[a[i]]][p]=b[i];
    as[a[i]]+=2;
  }
  /*for(ll i=0, y=0; i<n; i++, y+=2){
    for(ll j=i+1, x=0; j<n; j++, x+=2){
      ans[y][x]=i+1;
      ans[y][x+1]=j+1;
      if(con[i][j]==0) ans[y][x]=1, ans[y][x+1]=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...