제출 #502961

#제출 시각아이디문제언어결과실행 시간메모리
502961sliviu슈퍼트리 잇기 (IOI20_supertrees)C++14
0 / 100
1 ms332 KiB
#include "supertrees.h" #include <bits/stdc++.h> using namespace std; int construct(vector<vector<int>> p) { int n = p.size(), cur; vector<vector<int>> ans(n, vector<int>(n)); vector<int> seen(n), solved(n), cycleroot(n), cursp, cycle; function<void(int)> dfs = [&](int node) { seen[node] = cur; int c1 = 0, c2 = 0; for (int i = 0; i < n; ++i) if (i != node) { if (p[node][i] == 1) ++c1; else if (p[node][i] == 2) ++c2; else if (p[node][i] == 3) return 0; if (!seen[i] && p[node][i]) dfs(i); if (!p[node][i] && seen[i]) return 0; } if (!c1 && c2) cycle.emplace_back(node); if (!solved[cur] && c1) { solved[cur] = 1; int cur = node; for (int i = 0; i < n; ++i) if (i != node && p[node][i] == 1) ans[cur][i] = ans[i][cur] = 1, cur = i; } }; for (int i = 0; i < n; ++i) if (!seen[i]) { cycle.clear(); ++cur; dfs(i); if (!cycle.empty()) { int cur = i; for (auto x : cycle) if (x != i) { ans[cur][x] = ans[x][cur] = 1; cur = x; } ans[cur][i] = ans[i][cur] = 1; } } build(ans); return 1; }

컴파일 시 표준 에러 (stderr) 메시지

supertrees.cpp: In lambda function:
supertrees.cpp:35:2: warning: control reaches end of non-void function [-Wreturn-type]
   35 |  };
      |  ^
#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...