Submission #1309475

#TimeUsernameProblemLanguageResultExecution timeMemory
1309475Faisal_SaqibWorld Map (IOI25_worldmap)C++20
22 / 100
14 ms3280 KiB
#include <vector> #include <iostream> // #include "worldmap.h" using namespace std; const int N=50; vector<int> ma[N],tour; bool vis[N]; void dfs(int x,int p=0) { vis[x]=1; tour.push_back(x); // O(n) for(auto y:ma[x]) { if(y^p) { if(!vis[y]) { dfs(y,x); tour.push_back(x); // O(m) } else { // last we have x tour.push_back(y); tour.push_back(x); } } } } std::vector<std::vector<int>> create_map(int n, int m, std::vector<int> edg0, std::vector<int> edg1) { if(m*2==(n*(n-1))) { vector<vector<int>> answer(n*2,vector<int>(2*n,0)); for(int i=0;i<2*n;i++) { if(i&1) { for(int j=0;j<2*n;j++) answer[i][j]=(j%n)+1; } else{ for(int j=0;j<2*n;j++) { answer[i][j]=(i/2)+1; } } } return answer; } for(int i=0;i<=n;i++) { ma[i].clear(); vis[i]=0; } for(int j=0;j<m;j++) { ma[edg0[j]].push_back(edg1[j]); ma[edg1[j]].push_back(edg0[j]); } tour.clear(); dfs(1); int K=tour.size(); vector<vector<int>> answer(K,vector<int>(K,0)); for(int i=0;i<K;i++) { for(int j=0;j<K;j++) { answer[i][j]=tour[i]; } } return answer; }
#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...