제출 #1249698

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

using namespace std;

const int N_MAX = 40 + 11;
vector<int> G[N_MAX];

vector<vector<int>> regulate(vector<vector<int>> board) {
    int n = board.size(), m = board[0].size();
    int K = max(n, m);
    vector ans = vector(K, vector<int>(K));
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            ans[i][j] = board[i][j];
        }
    }
    for (int i = 0; i < K; i++) {
        for (int j = 0; j < K; j++) {
            if (!ans[i][j]) {
                if (j > 0 && ans[i][j - 1]) ans[i][j] = ans[i][j - 1];
                else if (i > 0 && ans[i - 1][j]) ans[i][j] = ans[i - 1][j];
                else assert(false);
            }
        }
    }
    // for (int i = 0; i < K; i++) {
    //     for (int j = 0; j < K; j++) {
    //         cout << ans[i][j] << ' ';
    //     }
    //     cout << '\n';
    // }
    return ans;
}

vector<int> st;
void dfs(int v, int pa = -1) {
    for (int u : G[v]) {
        if (u == pa) continue;
        st.push_back(u);
        dfs(u, v);
        st.push_back(v);
    }
}

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
    mt19937 rng(42);
    vector ans = vector(240, vector<int>(240));
    for (int i = 0; i < 240; i++) {
        for (int j = 0; j < 240; j++) {
            ans[i][j] = rng() % N + 1;
        }
    }
    return regulate(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...