可空降至 <span style="font-family: Arial, Helvetica, sans-serif;">http://www.guokr.com/article/41423/</span>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <climits>
#include <cctype>
#include <algorithm>
#include <iostream>
#include <map>
#include <stack>
#include <queue>
#include <vector>
#include <utility>
#include <functional>
using namespace std;
typedef long long LoveLive;
const double pai = acos(-1.0);
//const double pai = 3.14159265358979323846;
const int inf = INT_MAX;
int main(){
#ifndef ONLINE_JUDGE
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
#endif // ONLINE_JUDGE
int t, n, m, p;
while(scanf("%d", &t) != EOF){
while(t--){
scanf("%d %d %d", &n, &m, &p);
if(2 * m + 1 > n){
if(p == n){
printf("%d\n", m - ((n - 1) / 2));
continue;
}
if((p + n) % 2 == 0){
printf("1\n");
continue;
}
if((p + n) & 2 != 0){
printf("0\n");
}
}
else if(n == 2 * m + 1){
if(p == n){
printf("0\n");
continue;
}
if((p + n) % 2 == 0){
printf("1\n");
continue;
}
else{
printf("0\n");
continue;
}
}
else{
int ii, jj, kk;
int key = n - 2 * m;
for(ii = 25; ii >= 1; ii--){
jj = (int)(pow(2, ii));
if(jj <= key){
break;
}
}
// cout << jj << endl;
if(p > 2 * m + jj){
printf("Thrown\n");
}
else{
printf("0\n");
}
}
}
}
return 0;
}