Submission #1180372

#TimeUsernameProblemLanguageResultExecution timeMemory
1180372asli_bgPraktični (COCI18_prakticni)C++20
26 / 130
154 ms30488 KiB
#include<bits/stdc++.h> using namespace std; #include <ext/pb_ds/assoc_container.hpp> using namespace __gnu_pbds; #define int long long //#define int double typedef pair<int,int> pii; typedef vector<pii> vii; typedef vector<int> vi; typedef vector<bool> vb; #define FOR(i,a) for(int i=0;i<(a);i++) #define FORE(i,a,b) for(int i=(a);i<(b);i++) #define all(x) x.begin(),x.end() #define fi first #define se second #define pb push_back #define sp <<" "<< #define cont(x) for(auto el:x) cout<<el<<' ';cout<<endl; #define contp(x) for(auto el:x) cout<<el.fi<<'-'<<el.se<<' ';cout<<endl; #define DEBUG(x) cout<<#x sp x<<endl; #define carp(x,y) ((x%MOD)*(y%MOD))%MOD #define topla(x,y) ((x%MOD)+(y%MOD))%MOD #define mid (l+r)/2 const int MAXN=1e5+5; const int MOD=1e9+7; const int INF=1e18; vii adj[MAXN]; bool vis[MAXN]; int tut[MAXN]; //pref xor int p[MAXN], dep[MAXN]; map<int,set<int>> op; map<pii,int> edg; void dfs(int nd,int ata,int h){ vis[nd]=true; dep[nd]=h; p[nd]=ata; for(auto [kom,cost]:adj[nd]){ if(!vis[kom]){ tut[kom]=tut[nd]^cost; dfs(kom,nd,h+1); } else if(dep[kom]<dep[nd]){ //back edge int deg=tut[nd]^tut[kom]; //back edgein vali (cost) == deg olmalı if(deg!=cost) op[deg^cost].insert(edg[{nd,kom}]); } } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n,m; cin>>n>>m; FOR(i,m){ int a,b,c; cin>>a>>b>>c; adj[a].pb({b,c}); adj[b].pb({a,c}); edg[{a,b}]=i+1; edg[{b,a}]=i+1; } dfs(1,0,0); //dfs tree oluştur cout<<op.size()<<endl; for(auto el:op){ cout<<el.fi<<' '; cout<<el.se.size()<<' '; for(auto el2:el.se) cout<<el2<<' '; cout<<endl; } }
#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...