Submission #1261417

#TimeUsernameProblemLanguageResultExecution timeMemory
1261417riddlesWorld Map (IOI25_worldmap)C++20
72 / 100
108 ms9544 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) vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) { int n, m; vector<int> a, b; n=N; m=M; a=A; b=B; vector<vector<int>> ans; vector<vector<int>> con(n+1); vector<bool> vis(n+1); vector<int> etour; if(n==1) return {{1}}; for(ll i=0; i<m; i++){ //a[i]--, b[i]--; con[a[i]].pb(b[i]); con[b[i]].pb(a[i]); } auto dfs=[&](int v, auto &&dfs) -> void { etour.pb(v); vis[v]=1; for(auto u: con[v]) { if(vis[u]) continue; dfs(u, dfs); etour.pb(v); } }; dfs(1, dfs); etour.resize(2*n, 1); vector<bool> vis2(n+1, false); ans=vector<vector<int>> (4*n, vector<int>(4*n)); int q=0; for(int i=0; i<2*n; i++){ int v=etour[i]; for(ll j=0; j<ans[q].size(); j++) ans[q][j]=v; q++; if(vis2[v]) continue; vis2[v]=1; for(ll j=0; j<ans[q].size(); j++) ans[q][j]=v; int h=0; for(auto u: con[v]) ans[q][h]=u, h+=2; q++; for(ll j=0; j<ans[q].size(); j++) ans[q][j]=v; q++; } 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...