用数组f[402]记录每个房间前的走廊被用过多少次,则答案即为f[i]*10;每扫描一个点将数组这个范围内的值加1,注意范围的确定,因为2*i-1和2*i共用一个走廊,所以每读入一个区间要判断扩容。
#include <stdio.h>
#include <string.h>
int main()
{
//freopen("input.txt","r",stdin);
int T;
scanf("%d",&T);
while (T--)
{
int f[402],n,x,y;
memset(f,0,sizeof(f));
scanf("%d",&n);
for (int i=0; i!=n; i++)
{
scanf("%d%d",&x,&y);
if (x>y) { int t=x; x=y; y=t; } //要交换
if (!(x & 1)) x--; //取反和&运算害我wa了两次
if (y & 1) y++;
for (int k=x; k<=y; k++)
f[k]++;
}
int ans=0;
for (int i=1; i<=400; i++)
ans=f[i]>ans ? f[i] : ans;
printf("%d\n",ans*10);
}
return 0;
}