Submission #1098207

#TimeUsernameProblemLanguageResultExecution timeMemory
1098207Trisanu_DasMake them Meet (EGOI24_makethemmeet)C++17
70 / 100
2 ms616 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m, sink, root, odd[105], even[105];
vector<int> adj[105];

void dfs(int u, int p, int dep){
	for(int v : adj[u]){
		if(v == p) continue;
		if(dep & 1) odd[v] = u;
		else even[v] = u;
		dfs(v, u, dep + 1);
	}
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
    cin >> n >> m;
    if(m == n - 1){
        while(m--){
            int u, v; cin >> u >> v;
            adj[u].push_back(v);
            adj[v].push_back(u);
        }
        for(int i = 0; i < n; i++){
            if(adj[i].size() == 1){
                sink = i;
                root = adj[i][0];
                break;
            }
        }
        iota(odd, odd + n, 0);
        iota(even, even + n, 0);
        odd[sink] = root;
        dfs(root, -1, 0);

        cout << 2 * n << '\n';
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++) cout << even[j] << ' ';
            cout << '\n';
            for(int j = 0; j < n; j++) cout << odd[j] << ' ';
            cout << '\n';
        }
    }else{
        cout << 4 * n << '\n';
        for(int i = 0; i < 4 * n; i++){
            for(int j = 0; j < n; j++) cout << (j + (i & 1)) / 2 << ' ';
            cout << '\n';
        }
    }
}
#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...