Submission #1285573

#TimeUsernameProblemLanguageResultExecution timeMemory
1285573eri16World Map (IOI25_worldmap)C++20
86 / 100
63 ms5508 KiB
#include <bits/stdc++.h> #include "worldmap.h" using namespace std; vector <int> VV; void dfs(vector<vector<int>>& v,int mx,int node,vector<int>& visited){ VV.push_back(node); int tt=0; for (int i=0; i<v[node].size(); i++){ if (visited[v[node][i]]==0){ tt++; visited[v[node][i]]=1; dfs(v,mx,v[node][i],visited); VV.push_back(node); } } } std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) { VV.clear(); vector<vector<int>> v(N+1); vector<vector<int>> vt(N+1, vector<int>(N+1, 0)); for (int i=1; i<=N; i++){ vt[i][i]=1; } for (int i=0; i<M; i++){ v[A[i]].push_back(B[i]); vt[A[i]][B[i]]=1; v[B[i]].push_back(A[i]); vt[B[i]][A[i]]=1; } if (N==1){ return vector<vector<int>>{{1}}; } vector<int> visited(N+1,0); visited[1]=1; dfs(v,N,1,visited); int ln=VV.size(); ln=N+VV.size(); vector <vector <int>> ans(ln, vector<int>(ln, 1)); vector <int> vvv(N+1,0); int k=1; int ps=1; for (int i=0; i<VV.size(); i++){ if (vvv[VV[i]]==1){ for (int j=0; j<ln; j++){ if (j%2==ps)ans[k-1][j]=VV[i]; } for (int j=0; j<ln; j++){ if (j%2==(1-ps))ans[k][j]=VV[i]; } k++; } else{ vvv[VV[i]]=1; if (k==1){ k--; } else{ for (int j=0; j<ln; j++){ if (j%2==ps)ans[k-1][j]=VV[i]; } } for (int j=0; j<ln; j++){ if (j%2==ps && j<2*N){ if (vt[VV[i]][j/2+1]==1){ ans[k][j]=j/2+1; } else{ ans[k][j]=VV[i]; } } else{ ans[k][j]=VV[i]; } } for (int j=0; j<ln; j++){ if (j%2==ps)ans[k+1][j]=VV[i]; } k=k+2; ps=1-ps; } } return (ans); } /* int main() { vector<int> A = {1, 1, 2}; vector<int> B = {2, 3, 3}; try { auto ans = create_map(3, 3, A, B); cout << "Map generated successfully!\n"; for (auto &row : ans) { for (int x : row) cout << x << " "; cout << "\n"; } } catch (const std::exception &e) { cerr << "Exception: " << e.what() << "\n"; } catch (...) { cerr << "Unknown exception occurred!\n"; } return 0; } */
#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...