Submission #73133180
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=200005,inf=2e9;
int read() {
static int f=1,c=getchar(),x=0;
for(f=1; c<=47||c>=58; c=getchar())f=f&&(c!=45);
for(x=0; c>=48&&c<=57; c=getchar())x=(x<<3)+(x<<1)+(c&15);
return f?x:-x;
}
void print(int x) {
if(x>9)print(x/10);
putchar((x%10)|48);
}
int n,m,dis[MAXN],tcnt;
bool vis[MAXN];
vector<pair<int,int>>vec[MAXN];
void dfs(int u) {
vis[u]=true;
for(pair<int,int>&tt:vec[u]) {
int&v=tt.first,&w=tt.second;
if(!vis[v]) {
dis[v]=dis[u]^w;
dfs(v);
}
}
}
struct Trie {
int son[2];
} tr[MAXN*40];
int newnode() {
++tcnt;
tr[tcnt].son[0]=tr[tcnt].son[1]=0;
return tcnt;
}
void Insert(int x) {
for(int i=18,u=1; i>=0; --i) {
int&v=tr[u].son[(x>>i)&1];
if(!v) v=newnode();
u=v;
}
}
int query(int x) {
int u=1,ans=0;
for(int i=18; ~i; --i)
if(tr[u].son[(~x>>i)&1])u=tr[u].son[(~x>>i)&1],ans|=1<<i;
else u=tr[u].son[(x>>i)&1];
return ans;
}
void solve() {
tcnt=1,tr[1].son[0]=tr[1].son[1]=0;
n=read(),m=read();
for(int i=1,a,b,x; i<=m; ++i) {
a=read(),b=read(),x=read();
vec[a].emplace_back(b,x);
vec[b].emplace_back(a,x);
}
dfs(1);
for(int i=1; i<=n; ++i)Insert(dis[i]);
int cnt=0,id=-1;
for(int i=0; i<=n; ++i)
if(query(i)<=n) {
++cnt,id=i;
}
if(n&1) {
if(cnt!=1) printf("-1\n");
else {
for(int i=0; i<=n; ++i)vis[i]=false;
for(int i=1; i<=n; ++i)vis[id^dis[i]]=true;
for(int i=0; i<=n; ++i)
if(!vis[i])printf("%d\n",i);
else vis[i]=false;
}
} else if(cnt>0) {
for(int i=0; i<=n; ++i)vis[i]=false;
for(int i=1; i<=n; ++i)vis[id^dis[i]]=true;
for(int i=0; i<=n; ++i)
if(!vis[i])printf("%d\n",i);
else vis[i]=false;
} else printf("-1\n");
for(int i=1; i<=n; ++i)vec[i].clear(),vis[i]=false;
}
int main() {
int t=read();
while(t--)solve();
return 0;
}
Submission Info
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample-01.txt |
| All |
01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, sample-01.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 01-01.txt |
AC |
28 ms |
3720 KiB |
| 01-02.txt |
AC |
28 ms |
4100 KiB |
| 01-03.txt |
AC |
30 ms |
4804 KiB |
| 01-04.txt |
AC |
31 ms |
5124 KiB |
| 01-05.txt |
AC |
31 ms |
5284 KiB |
| 01-06.txt |
AC |
32 ms |
5452 KiB |
| 01-07.txt |
AC |
33 ms |
5716 KiB |
| 01-08.txt |
AC |
39 ms |
6868 KiB |
| 01-09.txt |
AC |
33 ms |
6844 KiB |
| 02-01.txt |
AC |
74 ms |
19916 KiB |
| 02-02.txt |
AC |
72 ms |
19828 KiB |
| 02-03.txt |
AC |
15 ms |
8896 KiB |
| 02-04.txt |
AC |
15 ms |
9056 KiB |
| 02-05.txt |
AC |
54 ms |
20160 KiB |
| 02-06.txt |
AC |
56 ms |
19852 KiB |
| 02-07.txt |
AC |
81 ms |
23236 KiB |
| 02-08.txt |
AC |
80 ms |
21868 KiB |
| 02-09.txt |
AC |
84 ms |
25096 KiB |
| 02-10.txt |
AC |
83 ms |
24848 KiB |
| 03-01.txt |
AC |
56 ms |
16340 KiB |
| 03-02.txt |
AC |
44 ms |
14472 KiB |
| 03-03.txt |
AC |
45 ms |
14284 KiB |
| 03-04.txt |
AC |
42 ms |
14548 KiB |
| 03-05.txt |
AC |
50 ms |
14292 KiB |
| 03-06.txt |
AC |
51 ms |
14472 KiB |
| sample-01.txt |
AC |
2 ms |
3756 KiB |