Submission #1195455

#TimeUsernameProblemLanguageResultExecution timeMemory
1195455FIFI_cppPovjerenstvo (COI22_povjerenstvo)C++20
33 / 100
195 ms54508 KiB
#include <bits/stdc++.h> #include <iostream> #include <vector> #include <algorithm> #include <numeric> #include <cstdlib> #include <cmath> #include <queue> #include <stack> #include <deque> #include <fstream> #include <iterator> #include <set> #include <map> #include <unordered_map> #include <iomanip> #include <cctype> #include <string> #include <cassert> #include <set> #include <bitset> #include <unordered_set> #include <numeric> #define all(a) a.begin(), a.end() #define fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); #define pb push_back #define ppi pair<int,pair<int,int>> #define int int64_t using namespace std; // /\_/\ // (= ._.) // / > \> // encouraging cat const int INF = 10000000000000000; //const int mod = 1000000007; const int mod = 998244353; const int MAXN = 200005; //ifstream fin('xor.in'); //ofstream fout('xor.out'); vector<vector<int>> adj; vector<vector<int>> rev; bool visited[MAXN]; int col[MAXN]; void dfs(int node, int c) { col[node] = c; visited[node] = true; for (auto edge: adj[node]) { if (visited[edge]) { continue; } dfs(edge, !c); } } signed main() { int n,m; cin >> n >> m; adj.resize(n); rev.resize(n); for (int i = 0;i < m;i++) { int u,v; cin >> u >> v; u--,v--; adj[u].pb(v); rev[v].pb(u); } for (int i = 0;i < n;i++) { if (col[i] != 0) { continue; } col[i] = 1; for (auto edge: adj[i]) { col[edge] = 2; } for (auto edge: rev[i]) { col[edge] = 2; } } vector<int> ans; for (int i = 0;i < n;i++) { if (col[i] == 1) { ans.pb(i + 1); } } cout << ans.size() << '\n'; for (int i = 0;i < ans.size();i++) { cout << ans[i] << " "; } cout << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...