제출 #1252669

#제출 시각아이디문제언어결과실행 시간메모리
1252669ollelap세계 지도 (IOI25_worldmap)C++20
0 / 100
1060 ms2028168 KiB
using namespace std;
#include <bits/stdc++.h>
typedef long long ll;
#define rep(i,a,b) for(int i = a; i < b; i++)

#include "worldmap.h"

vector<vector<int>> ans;
vector<vector<int>> g;
int nnn = 0;

pair<int,int> put(int x, int p, int i, int j) {
    int i2 = i+1, j2 = j+1;
    for (auto c : g[x]) if (c != p) {
        auto [a, b] = put(c, x, i2, j2);
        i2 = a+1;
        j2 = max(j2, b+1);
    }
    rep(I,i,i2) rep(J,j,j2) if (ans[I][J] == -1) ans[I][J] = x;

    return {i2, j2};
}

std::vector<std::vector<int>> create_map(int N, int M, std::vector<int> A, std::vector<int> B) {

    int n = N, m = M;
    nnn = 240;

    ans = vector<vector<int>>(nnn, vector<int>(nnn, -1));
    g.resize(n);
    rep(i,0,m) {
        A[i]--;B[i]--;
        g[A[i]].push_back(B[i]);
        g[B[i]].push_back(A[i]);
    }

    put(0, -1, 0, 0);
    rep(i,0,nnn) rep(j,0,nnn) if (ans[i][j] == -1) ans[i][j] = 0;
    rep(i,0,nnn) rep(j,0,nnn) ans[i][j]++;

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