제출 #1327895

#제출 시각아이디문제언어결과실행 시간메모리
1327895adiyer세계 지도 (IOI25_worldmap)C++20
29 / 100
18 ms2732 KiB
#include "worldmap.h"
#include <bits/stdc++.h>

using namespace std;

int was[45];

vector < int > ans;
vector < int > g[45];

void dfs(int v, int p){
    was[v] = 1, ans.push_back(v);
    for(int u : g[v]){
        if(u == p) continue;
        if(!was[u]) dfs(u, v);
        else ans.push_back(u), ans.push_back(v);
    }
    if(v > 1) ans.push_back(p);
}

vector < vector < int > > create_map(int n, int m, vector < int > a, vector< int > b) {
    ans.clear();
    for(int i = 0; i <= n; i++) g[i].clear(), was[i] = 0;
    for(int i = 0; i < m; i++){
        g[a[i]].push_back(b[i]);
        g[b[i]].push_back(a[i]);
    }
    dfs(1, 1);
    int sz = (ans.size() + 1) / 2;
    vector < vector < int > > ret((sz), vector < int > (sz));
    for(int i = 0; i < sz; i++)
        for(int j = 0; j < sz; j++)
            ret[i][j] = (i + j >= ans.size() ? ans.back() : ans[i + j]);
    assert(sz <= 240);
    return ret;
}
#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...