技巧题,记下来。
#include<stdio.h>
int space[200];
int main(){
int a, b, i;
int from, to;
while(~scanf("%d", &a)){
while(a--){
memset(space, 0, sizeof(space));
scanf("%d", &b);
while(b--){
scanf("%d%d", &from, &to);
if(from > to) from^=to^=from^=to;//保证from<=to
if(to-from == 1){/*如果重叠 如1与2 3与4*/
if(from%2 == 1) space[from/2]++;/*继续分类*/
else{
space[(from-1)/2]++;
space[to/2]++;
}
}else{/*填充from->to所有corridor,用三元运算*/
for( i=(from%2 ? from/2: (from-1)/2);
i<=(to%2 ?(to/2):(to-1)/2); i++)
space[i]++;
}
}
/*find max;*/
int max = 0;
for( i = 0; i <= 199; i++) if(space[i] > max) max = space[i];
printf("%d\n", 10*max);
}
}
return 0;
}