# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1081469 | 2024-08-30T05:30:13 Z | 7mody | Connecting Supertrees (IOI20_supertrees) | C++17 | 1 ms | 348 KB |
#include "supertrees.h" #include <bits/stdc++.h> using namespace std; int construct(vector<vector<int>> p) { int n = p.size(); vector<vector<int>> ans; for (int i = 0; i < n; i++) { vector<int> row; row.resize(n); ans.push_back(row); } for(int i = 0; i < n;i++){ if(p[i][i] != 1) return 0; for(int j = i + 1;j < n;j++){ if(p[i][j] != p[j][i] || p[i][j] == 3) return 0; } } vector<bool> vis(n, false); for(int i = 0; i < n;i++){ if(vis[i]) continue; vis[i] = true; vector<int> curr(1, i); for(int j = 0; j < n;j++){ if(p[i][j] != 0 && vis[j]) return 0; if(p[i][j] != 0) curr.push_back(j), vis[j] = true; } int m = curr.size(); vector<vector<int>> branches; vector<bool> temp(n, false); for(int a = 0; a < m;a++){ if(temp[a]) continue; vector<int> add; add.push_back(a); for(int b = a+1; b < m;b++){ if(p[a][b] == 1){ add.push_back(b); temp[b] = true; } } } for(vector<int> x : branches){ for(int a : x){ for(int b : x){ if(a == b) continue; if(p[a][b] != 1) return 0; ans[a][b] = 1; } } } for(int x = 0; x < branches.size();x++){ vector<bool> bb(n); for(int a : branches[x]){ bb[a] = true; } for(int a : branches[x]){ for(int b : curr){ if(bb[b]) continue; if(p[a][b] != 2) return 0; } } } for(int j = 1; j < curr.size();j++){ for(int k = 0; k < n;k++){ int a = curr[j]; int b = curr[0]; if(a == k || b == k) continue; bool ok1 = p[a][k] >=1; bool ok2 = p[b][k] >=1; if(ok1 != ok2) return 0; } } for(int x = 0; x < branches.size() - 1; x++){ ans[branches[x][0]][branches[x+1][0]] = ans[branches[x+1][0]][branches[x][0]] = 1; } ans[branches[0][0]][branches[branches.size()-1][0]] = ans[branches[branches.size()-1][0]][branches[0][0]] = 1; } build(ans); return 1; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 348 KB | Answer gives possible 0 while actual possible 1 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 348 KB | Answer gives possible 0 while actual possible 1 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Answer gives possible 0 while actual possible 1 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Answer gives possible 0 while actual possible 1 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 348 KB | Answer gives possible 0 while actual possible 1 |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 348 KB | Answer gives possible 0 while actual possible 1 |
2 | Halted | 0 ms | 0 KB | - |