제출 #1250934

#제출 시각아이디문제언어결과실행 시간메모리
1250934lukameladze세계 지도 (IOI25_worldmap)C++20
5 / 100
1142 ms2162688 KiB
#include "worldmap.h"
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cassert>
#include <iostream>
#define pb push_back
using namespace std;
const int MX = 1005;
vector <int> v[MX], be[MX], de[MX];
vector <int> ord;
void dfs(int a, int p, vector<int> &fix) {
    fix[a] = 1;
    ord.pb(a);
    for (int to : v[a]) {
        if (to == p) continue;
        // if (fix[to]) {
        //     be[a].pb(to);
        // } else {
        //     de[a].pb(to);
        // }
        dfs(to, a, fix);

    }
    if (p != 0 && v[a].size() != 1) {
        ord.pb(a);
    }
}
std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) {
    int n = N;
    ord.clear();
    for (int i = 0; i <= N; i++) {
        v[i].clear();
        be[i].clear();
        de[i].clear();
    }
    for (int i = 0; i < M; i++) {
        v[A[i]].push_back(B[i]);
        v[B[i]].push_back(A[i]);
    }
    
    vector <int> fix(n + 1, 0);
    dfs(1, 0, fix);
    vector <vector<int>> ans;
    
    ans.clear();
    for (int i = 0; i < ord.size(); i++) {
        vector <int> vec;
        for (int j = 0; j < ord.size(); j++) {
            vec.pb(ord[i]);
        }
        ans.pb(vec);
    }
       for (int i = 0; i <= N; i++) {
        v[i].clear();
        be[i].clear();
        de[i].clear();
    }
    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...