Submission #1257741

#TimeUsernameProblemLanguageResultExecution timeMemory
1257741mkkkkkkkkWorld Map (IOI25_worldmap)C++17
72 / 100
82 ms12616 KiB
#include "worldmap.h"
#include <bits/stdc++.h>

using namespace std;



void dfs(int i,vector<vector<int>>& vec,int& j,vector<int> adj[],bool vis[])
{

    vis[i]=true;
    for(int k=0;k<vec.size();k++)
    {
        vec[j][k]=i;
    }
    j++;
    int jj=0;
    for(auto it : adj[i])
    {
        vec[j][jj]=it;
        jj++;
        vec[j][jj]=i;
        jj++;
    }

    for(;jj<vec.size();jj++)
        vec[j][jj]=i;

    j++;

    for(auto it : adj[i])
    {
        if(vis[it]==false)
        {
            for(int k=0;k<vec.size();k++)
            {
                vec[j][k]=i;
            }
            j++;
            dfs(it,vec,j,adj,vis);
        }

    }

    if(i!=1)
    {
            for(int k=0;k<vec.size();k++)
            {
                    vec[j][k]=i;
            }

            j++;
    }

}

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B)
{
    vector<int> adj[100000];
    bool vis[1000000]={};
    int j=0;
    vector<vector<int>> vec;
    vector<int> temp;
    for(int i=0;i<N*2+2*(N-1);i++)
    {
        temp.push_back(-1);
    }
    for(int i=0;i<N*2+2*(N-1);i++)
    {
        vec.push_back(temp);
    }
    for(int i=0;i<A.size();i++)
    {
        int a=A[i],b=B[i];
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    dfs(1,vec,j,adj,vis);
    return vec;

}


#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...