| 23914 | 2026-01-31 18:18:48 | algopro | Testnevelés óra | cpp17 | Compilation error |
// UUID: 6127c264-2cb8-4b5a-bbc6-20b5698d5580
#include <bits/stdc++.h>
#define f(i, n) for(int i = 0; i < n; i++)
#define fr(i, n, s) for(int i = s; i >= n; i--)
#define fs(i, n, s) for(int i = s; i < n; i++)
#define all(v) (v).begin(), (v).start()
#define rall(v) (v).rbegin(), (v).rend()
using namespace std;
template <typename T>
using v = vector<T>;
typedef long long ll;
typedef unsigned u;
typedef unsigned short us;
typedef unsigned long long ull;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, k;
cin >> n >> k;
v<set<int>> s(n), t(n);
v<int> cnt(n);
f(i, k) {
int a, b;
cin >> a >> b;
a--; b--;
s[b].insert(a); cnt[b]++;
t[a].insert(b);
}
v<int> end, start;
f(i, n) {
if (t[i].empty()) end.push_back(i);
if (s[i].empty()) start.push_back(i);
}
if (end.empty() || start.empty()) {
cout << 0;
return 0;
}
pair<int, int> idk = {-1, -1};
v<int> crnt = start, sol, next;
while (!crnt.empty()) {
//if (crnt.size() != 1) {
// idk = {crnt[0], crnt[1]};
//}
for (int i : crnt) {
for (int j : t[i]) {
if (--cnt[j] == 0) next.push_back(j);
else if (cnt[j] < 0) {
cout << 0;
return 0;
}
}
if (!sol.empty() && !t[sol[sol.size() - 1]].contains(i)) idk = {sol[sol.size() - 1], i};
sol.push_back(i);
}
crnt = next; next.clear();
}
if (idk.first == -1) {
cout << 1 << endl;
for (int i : sol) cout << i + 1 << ' ';
} else {
cout << 2 << endl;
for (int i : sol) cout << i + 1 << ' ';
cout << endl;
for (int i : sol) {
if (i == idk.first) cout << idk.second + 1 << ' ';
else if (i == idk.second) cout << idk.first + 1 << ' ';
else cout << i + 1 << ' ';
}
}
return 0;
}open /var/local/lib/isolate/436/box/a.out: no such file or directory
main.cpp: In function 'int main()':
main.cpp:63:57: error: '__gnu_cxx::__alloc_traits<std::allocator<std::set<int> >, std::set<int> >::value_type' {aka 'class std::set<int>'} has no member named 'contains'
63 | if (!sol.empty() && !t[sol[sol.size() - 1]].contains(i)) idk = {sol[sol.size() - 1], i};
| ^~~~~~~~