Submission #1168911

#TimeUsernameProblemLanguageResultExecution timeMemory
1168911hamzabcMake them Meet (EGOI24_makethemmeet)C++20
70 / 100
7 ms628 KiB
#include <bits/stdc++.h>

using namespace std;
 
 
#define all(x) x.begin(), x.end()
#define mod 1000000007
#define sp << " " <<
#define endl << '\n'


long long int N, M;
vector<vector<int>> graph;
vector<vector<int>> matrix;


vector<int> p1, p2;
vector<int> vis;


void dfs(int n, int parity){
    vis[n] = true;
    for (auto go : graph[n]){
        if (vis[go])
            continue;
        if (parity){
            p2[go] = p2[n];
        }else{
            p1[go] = p1[n];
        }
        dfs(go, 1 - parity);
    }
}


int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin >> N >> M;
    graph.resize(N);
    matrix.resize(N, vector<int>(N));
    p1.resize(N);
    p2.resize(N);
    vis.resize(N, false);
    for (int i = 0; i < M; i++){
        int a, b;
        cin >> a >> b;
        matrix[a][b] = 1;
        matrix[b][a] = 1;
        graph[a].push_back(b);
        graph[b].push_back(a);
    }
    for (int i = 0; i < N; i++){
        p1[i] = i + 1;
        p2[i] = i + 1;
        matrix[i][i] = 1;
    }
    int root = -1;
    for (int i = 0; i < N; i++){
        for (auto j : graph[i]){
            for (auto u : graph[j]){
                if (matrix[i][u] == 0){
                    p2[j] = p2[u] = p2[i];
                    p1[i] = p1[j];
                    vis[u] = true;
                    vis[j] = true;
                    dfs(i, 0);
                    dfs(u, 0);
                    dfs(j, 1);
                    root = j;
                    break;
                }
            }
            if (root != -1)
                break;
        }
        if (root != -1)
            break;
    }
    if (root == -1)
        dfs(0, 0);
    cout << 600 endl;
    for (int i = 0; i < 300; i++){
        for (int k = 0; k < N; k++) cout << p2[k] sp "";
        cout endl;
        for (int k = 0; k < N; k++) cout << p1[k] sp "";
        cout endl;
    }
}
#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...