Submission #97052

#TimeUsernameProblemLanguageResultExecution timeMemory
97052hjc20032003Praktični (COCI18_prakticni)C++14
130 / 130
245 ms13304 KiB
#include<bits/stdc++.h> #define REP(i,s,t) for(int i=s;i<=t;i++) #define mp make_pair #define A first #define B second #define TO e[i].to #define pb push_back using namespace std; typedef pair<int,int> pii; const int maxn=2e5+5; struct Edge {int nxt,to,val;}e[maxn]; int hd[maxn],e_cnt; void add(int u,int v,int val) { e[++e_cnt]=(Edge){hd[u],v,val}; hd[u]=e_cnt; } int px[maxn],dfn[maxn],bad_cnt; pii bad[maxn]; void dfs(int u,int d,int x) { dfn[u]=d; px[u]=x; for(int i=hd[u];i;i=e[i].nxt) { if(!dfn[TO]) dfs(TO,d+1,x^e[i].val); else if(dfn[TO]<d-1) { int tx=x^e[i].val^px[TO]; if(tx) bad[++bad_cnt]=mp(i,tx); } } } int cnt,ans[50]; vector<int> vec[50]; int main() { int n,m; cin>>n>>m; REP(i,1,m) { int a,b,p; cin>>a>>b>>p; add(a,b,p); add(b,a,p); } dfs(1,1,0); REP(i,0,29) { int id=0; REP(j,1,bad_cnt) if(bad[j].B&1<<i) id=j; if(!id) continue; ans[++cnt]=bad[id].B; REP(j,1,bad_cnt) if(bad[j].B&1<<i) bad[j].B^=ans[cnt],vec[cnt].pb(bad[j].A); } cout<<cnt<<'\n'; REP(i,1,cnt) { cout<<ans[i]<<' '<<vec[i].size()<<' '; sort(vec[i].begin(),vec[i].end()); for(int j=0;j<vec[i].size();j++) cout<<((vec[i][j]-1)>>1)+1<<' '; cout<<'\n'; } return 0; }

Compilation message (stderr)

parkticni.cpp: In function 'int main()':
parkticni.cpp:49:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j=0;j<vec[i].size();j++) cout<<((vec[i][j]-1)>>1)+1<<' ';
               ~^~~~~~~~~~~~~~
#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...