Submission #1254093

#TimeUsernameProblemLanguageResultExecution timeMemory
1254093nickolasarapidisWorld 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;
    }
}

Compilation message (stderr)

worldmap.cpp: In function 'std::vector<std::vector<int> > create_map(int, int, std::vector<int>, std::vector<int>)':
worldmap.cpp:64:1: warning: control reaches end of non-void function [-Wreturn-type]
   64 | }
      | ^
#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...