分类讨论, 设 边 的数量分别为 ,
- , 必须为偶数; 当 时, 不为奇数 .
- , 首先讨论 和 都不为 的情况, 有解的条件是 .
时, 将 边 和 边 各构成一个环, 控制 所有边 都在 第一个环 里,
第二个环若无法被 边 完整地填充, 则通过下图的方式联通两环,
否则只需要将两个点看成一个点, 合起来即可, 从 个点 变成了 个点 .
- 再讨论其中一种边个数为 的情况, 只需要边的条数 大于等于 即可, 若出现了剩余的边, 这么连就可以了 .
- 不能等于 , 但是 可以等于 , 此时只需要将一个 边 反向, 边 正向, 相减后与不加 边没有区别 .
#include<bits/stdc++.h>
#define reg register
const int maxn = 55;
int read(){
char c;
int s = 0, flag = 1;
while((c=getchar()) && !isdigit(c))
if(c == '-'){ flag = -1, c = getchar(); break ; }
while(isdigit(c)) s = s*10 + c-'0', c = getchar();
return s * flag;
}
int N;
int a;
int b;
void Sc(){
N = read(), a = read(), b = read();
if(a == 1){ puts("0"); return ; }
if(N == 2){
if(a & 1) puts("0");
else if(!a && (b&1)) puts("0");
else if(a+b < N) puts("0");
else puts("1");
return ;
}else{
if((!a || !b) && (a+b >= N)) puts("1");
else if(a && b && a+b >= N+1) puts("1");
else puts("0");
}
}
int main(){
read();
int T = read(); while(T --) Sc();
return 0;
}