# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1084740 | an22inkle | 슈퍼트리 잇기 (IOI20_supertrees) | C++17 | 136 ms | 24148 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
#include "supertrees.h"
using pair = std::array<int, 2>;
using ll = long long;
int construct(std::vector<std::vector<int>> p) {
int n = p.size();
std::vector<std::vector<int>> ans(n, std::vector<int>(n)), lines;
std::vector<int> part(n, -1);
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) continue;
if (p[i][j] == 0 || (part[i] > -1 && part[j] > -1)) continue;
if (part[i] > -1) lines[part[i]].push_back(j), part[j] = part[i];
else if (part[j] > -1) lines[part[j]].push_back(i), part[i] = part[j];
else {
lines.push_back({});
lines.back().push_back(i);
lines.back().push_back(j);
part[i] = part[j] = lines.size() - 1;
}
}
}
for (auto line : lines) {
for (int i = 0; i < line.size(); i++) {
for (int j = i+1; j < line.size(); j++) {
if (p[line[i]][line[j]] == 0) return 0;
}
// std::cout << line[i] << ' ';
if (i != line.size() - 1) ans[line[i]][line[i+1]] = ans[line[i + 1]][line[i]] = 1;
}
}
build(ans);
return 1;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |