This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, m, d[N], cl[N];
vector < pair < pair < int, int >, int > > g[N];
vector < pair < int, int > > e;
void dfs(int v, int pr = -1){
cl[v] = 1;
for(auto it : g[v]){
int to = it.first.first, len = it.first.second;
if(to != pr){
if(!cl[to]){
d[to] = (d[v] ^ len);
dfs(to, v);
}
else if(cl[to] == 1){
e.push_back(make_pair((d[v] ^ len ^ d[to]), it.second));
}
}
}
cl[v] = 2;
}
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> n >> m;
for(int i = 1; i <= m; i++){
int x, y, z;
cin >> x >> y >> z;
g[x].push_back(make_pair(make_pair(y, z), i));
g[y].push_back(make_pair(make_pair(x, z), i));
}
dfs(1);
vector < vector < int > > ans;
for(int i = 0; i < 30; i++){
int val = -1;
for(auto it : e){
if((it.first >> i) & 1){
val = it.first;
}
}
if(val == -1){
continue;
}
vector < int > q;
for(auto &it : e){
if((it.first >> i) & 1){
it.first ^= val;
q.push_back(it.second);
}
}
q.insert(q.begin(), (int)q.size());
q.insert(q.begin(), val);
ans.push_back(q);
}
cout << (int)ans.size() << "\n";
for(auto it : ans){
for(auto x : it){
cout << x << " ";
}
cout << "\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |