Submission #1293228

#TimeUsernameProblemLanguageResultExecution timeMemory
1293228alexrana2626World Map (IOI25_worldmap)C++20
0 / 100
1135 ms2162688 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> gr[41];
vector<int> v;

void dfs(int x, int p) 
{
    v.push_back(x);
    for (int i : gr[x]) 
    {
        if (i == p) continue;
        dfs(i, x);
        v.push_back(x);
    }
}

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) 
{
    if (M == N * (N-1)/2)
    {
        vector<vector<int>> ans1(2 * N, vector<int>(2* N));
        
        int num = 1;
        
        for (int i = 0; i < 2 * N; i++)
        {
            for (int j = 0; j < 2 * N; j++)
            {
                if (i % 2 == 0) ans1[i][j] = num;
                else 
                {
                    if (j < N) ans1[i][j] = j + 1;
                    else ans1[i][j] = j + 1 - N;
                }
            }
            if (i % 2 == 0) num++;
        }
        
        return ans1;
    }
    else
    {
        for (int i = 0; i < 41; i++) gr[i].clear();
        v.clear();

        for (int i = 0; i < M; i++) 
        {
            gr[A[i]].push_back(B[i]);
            gr[B[i]].push_back(A[i]);
        }

        dfs(1, 0);

        int K = v.size();
        vector<vector<int>> ans(K, vector<int>(K));

        for (int i = 0; i < K; i++) 
        {
            for (int j = 0; j < K; j++) 
            {
                ans[i][j] = v[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...