Submission #1296247

#TimeUsernameProblemLanguageResultExecution timeMemory
1296247lizi14World Map (IOI25_worldmap)C++20
0 / 100
4 ms832 KiB
//#include "worldmap.h" #include <cassert> #include <cstdio> #include <bits/stdc++.h> using namespace std; vector<int>j; map<pair<int,int>,int>mp; //const int N1=50; vector<int>v[100]; //#include "worldmap.h" int x[100]; int yuuu; int bati[100][100]; void dfs(int a,int parent){ x[parent]=1; for(int i=0; i<=yuuu; i++){ if(x[i]==0 && bati[parent][i]==1){ //j.push_back(a); j.push_back(parent); dfs(parent,i); } } if(parent!=1){ j.push_back(parent); } } vector<vector<int>>create_map(int N, int M,vector<int> A,vector<int> B) { if(M==N-1){ for(int i=0; i<=N; i++){ v[i].clear(); } j.clear(); int n=A.size(); for(int i=0; i<n; i++){ v[A[i]].push_back(B[i]); v[B[i]].push_back(A[i]); } dfs(0,1); int batiii=j.size(); vector<vector<int>> ans(batiii, vector<int>(batiii)); for(int i=0; i<j.size(); i++){ for(int drnachvi=0; drnachvi<j.size(); drnachvi++){ ans[drnachvi][i]=j[i]; //cout<<ans[drnachvi][i]<<" "; } //cout<<endl; } return ans; exit(0); } else{ for(int i=0; i<=N; i++){ v[i].clear(); } yuuu=N; j.clear(); for(int i=0; i<=N; i++){ for(int j=0; j<=N; j++){ bati[i][j]=0; } } for(int i=0; i<N; i++){ v[A[i]].push_back(B[i]); v[B[i]].push_back(A[i]); bati[A[i]][B[i]]=1; bati[B[i]][A[i]]=1; } for(int i=0; i<100; i++){ x[i]=0; } j.clear(); dfs(0,1); // for(auto a:j){ // cout<<a<<" "; // } // cout<<endl; vector<int>drnachvi; drnachvi.clear(); mp.clear(); int ku=j.size(); int mtvleli=0; int zuigetsu[N+1]; for(int i=0; i<=N; i++){ zuigetsu[i]=0; } for(int i=0; i<N; i++){ // v[A[i]].push_back(B[i]); // v[B[i]].push_back(A[i]); bati[A[i]][B[i]]=1; bati[B[i]][A[i]]=1; } for(int i=0; i<j.size(); i++){ drnachvi.push_back(j[i]); if(zuigetsu[j[i]]==0){ drnachvi.push_back(-19); drnachvi.push_back(j[i]); zuigetsu[j[i]]=1; mtvleli++; if(mtvleli==N)break; } } int batiii=drnachvi.size(); vector<vector<int>> ans(batiii, vector<int>(batiii,-19)); for(int i=0; i<batiii; i++){ ans[0][i]=drnachvi[i]; } for(int i=1; i<=N; i++){ for(int j=1; j<i; j++){ if(bati[i][j]==1){ pair<int,int>p={i,j}; if(mp[p]==0){ int maomao=-1; for(int juuu=0; juuu<batiii; juuu++){ if(drnachvi[juuu]==j){ maomao=juuu; break; } } if(maomao!=-1){ maomao++; for(int ka=0; ka<batiii; ka++){ if(ans[ka][maomao]==-19){ ans[ka][maomao]=i; ans[ka][maomao-1]=j; ans[ka+1][maomao]=j; ans[ka+1][maomao-1]=j; break; } } } mp[p]=1; } } } } for(int i=0; i<ans.size(); i++){ for(int j=0; j<ans.size(); j++){ if(ans[i][j]==-19){ if(i==0){ ans[i][j]=ans[i][j-1]; } else ans[i][j]=ans[i-1][j]; } } } // if(ans.size()>2){ // vector<vector<int>>ixvi(ans.size()-2, vector<int>(ans.size()-2)); // for(int i=0; i<ans.size()-2; i++){ // for(int j=0; j<ans.size()-2; j++){ // ixvi[i][j]=ans[i][j]; // } // } // return ixvi; // } // else return ans; 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...