Submission #230519

#TimeUsernameProblemLanguageResultExecution timeMemory
230519VimmerPraktični (COCI18_prakticni)C++14
0 / 130
76 ms8820 KiB
#include <bits/stdc++.h> //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") //#pragma GCC optimize("Ofast") //#pragma GCC optimize("fast-math") //#pragma GCC optimize("no-stack-protector") #define F first #define S second #define sz(x) int(x.size()) #define pb push_back #define N 100005 #define MOD ll(998244353) using namespace std; //using namespace __gnu_pbds; typedef long double ld; typedef long long ll; typedef short int si; //typedef tree <int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; vector <pair <int, int> > g[N]; bool mk[N], mkr[N]; int in[N], f[N], id; vector <vector <int> > vr; void dfs(int v) { in[v] = id++; mk[v] = 1; for (auto it : g[v]) { if (!mk[it.S]) dfs(it.S); f[v] = min(f[v], f[it.S]); if (f[it.S] > in[v]) mkr[it.F] = 1; } } void rec(int v) { mk[v] = 1; vr.back().pb(v); for (auto it : g[v]) { if (mk[it.S] || mkr[it.F]) continue; rec(it.S); } } int main() { // freopen("input.txt", "r", stdin);// freopen("output.txt", "w", stdout); ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; int t = 0; for (int i = 0; i < m; i++) { int x, y, p; cin >> x >> y >> p; g[x].pb({i + 1, y}); g[y].pb({i + 1, x}); t ^= p; } dfs(1); memset(mk, 0, sizeof(mk)); for (int i = 1; i <= n; i++) { if (mk[i]) continue; vr.emplace_back(); rec(i); } vector <int> ans; ans.clear(); for (int i = 0; i < sz(vr); i++) { if (sz(vr[i]) < 3) continue; for (auto it : g[vr[i][0]]) { if (mkr[it.F]) continue; ans.pb(it.F); break; } } if (sz(ans) == 0) {cout << 0 << endl; exit(0);} cout << 1 << endl; cout << t << " " << sz(ans) << " "; for (auto it : ans) cout << it << " "; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...