Submission #1254095

#TimeUsernameProblemLanguageResultExecution timeMemory
1254095nickolasarapidisWorld Map (IOI25_worldmap)C++20
22 / 100
14 ms2120 KiB
#include "worldmap.h" #include <bits/stdc++.h> using namespace std; vector<int> adj[45]; vector<int> et; vector<bool> visited(45); void dfs(int s, int e){ et.push_back(s); if(visited[s]) return; visited[s] = true; for(auto u : adj[s]){ if(u == e) continue; dfs(u, s); et.push_back(s); } } vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B){ for(int i = 0; i < 45; i++){ adj[i].clear(); } et.clear(); for(int i = 0; i < 45; i++){ visited[i] = false; } for(int i = 0; i < M; i++){ adj[A[i]].push_back(B[i]); adj[B[i]].push_back(A[i]); } if(M == N - 1){ dfs(1, -1); vector<vector<int>> ans(et.size(), vector<int>(et.size())); for(int i = 0; i < et.size(); i++){ for(int j = 0; j < et.size(); j++){ ans[i][j] = et[i]; } } return ans; } else if(M == N*(N - 1)/2){ vector<vector<int>> ans(2*N); int cnt = 1; for(int i = 0; i < 2*N; i++){ if(i%2 == 0){ for(int j = 0; j < 2*N; j++){ ans[i].push_back(cnt); } cnt++; } else{ for(int j = 0; j < N; j++){ ans[i].push_back(j + 1); } for(int j = 0; j < N; j++){ ans[i].push_back(j + 1); } } } return ans; } else{ vector<vector<int>> ans(M, vector<int>(M, 1)); for(int i = 0; i < M; i++){ ans[i][0] = A[i]; ans[i][1] = B[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...