제출 #1250594

#제출 시각아이디문제언어결과실행 시간메모리
1250594countlessWorld Map (IOI25_worldmap)C++20
15 / 100
153 ms18400 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;

#define sp <<" "<<
#define endl "\n"

vector<vector<int>> create_map(int N, int M, vector<int> A, vector<int> B) {
    // subtask 1
    // vector<vector<int>> ans(N, vector<int>(N));
    // deque<int> o(N);
    // for (int i = 0; i < N; i++) {
    //     fill(o.begin(), o.end(), i+1);
    //     ans[i] = vector<int>(o.begin(), o.end());
    // }

    // subtask 3
    // rainbow?
    // vector<vector<int>> ans(N, vector<int>(N));
    // deque<int> o(N);
    // iota(o.begin(), o.end(), 1);
    // for (int i = 0; i < N; i++) {
    //     ans[i] = vector<int>(o.begin(), o.end());
    //     for (int j = 0; j < i+1; j++) {
    //         o.push_front(o.back());
    //         o.pop_back();
    //     }
    // }
    
    // subtask 2/5
    // vector<vector<pair<int, int>>> adj(N+1);
    // for (int i = 0; i < M; i++) {
    //     adj[A[i]].emplace_back(B[i], i);
    //     adj[B[i]].emplace_back(A[i], i);
    // }

    // vector<int> sigma;
    // vector<bool> vis(M);
    // auto dfs = [&](auto &&dfs, int u) -> void {
    //     sigma.push_back(u);
    //     for (auto &[v, id] : adj[u]) {
    //         if (vis[id]) continue;
    //         vis[id] = true;
    //         dfs(dfs, v);
    //         sigma.push_back(u);
    //     }
    // };

    // dfs(dfs, 1);

    // int K = sigma.size();
    // assert(K <= 250);
    // vector<vector<int>> ans(K, vector<int>(K));
    // for (int i = 0; i < K; i++) ans[i] = sigma;

    // subtask 4
    vector<int> sigma;
    for (int i = 0; i < M; i++) {
        sigma.push_back(1);
        sigma.push_back(A[i]);
        sigma.push_back(B[i]);
    }

    int K = sigma.size();
    vector<vector<int>> ans(240, vector<int>(240, 1));
    int i = 0, j = 0;
    while (!sigma.empty()) {
        if (i == 240) i = 0, j+=2;
        ans[j][i++] = sigma.back(); sigma.pop_back();
        ans[j][i++] = sigma.back(); sigma.pop_back();
        ans[j][i++] = sigma.back(); sigma.pop_back();
    }

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