题目大意
一层楼里面有400个房间,南北各200间。中间是一条长长的走廊,给定一些指令,要你从起点推一个桌子到终点,需要占用这两个房间之间的这一段走廊,推一个桌子用时10分钟。不能在同一段走廊内同时推两个桌子。求最快推完桌子的时间。
题解
我们只需要在数组中起点与终点间的走廊位置+10,最后计算这个数组中的最大值。
代码
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#define N 210
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
int _,ans,i,j,n,l,r,x,y,c[N];
int main()
{
scanf("%d",&_);
while (_--)
{
memset(c,0,sizeof(c));
scanf("%d",&n);
fo(i,1,n)
{
scanf("%d%d",&x,&y);
l=(min(x,y)+1)/2;
r=(max(x,y)+1)/2;
fo(j,l,r) c[j]+=10;
}
ans=0;
fo(i,1,200) ans=max(ans,c[i]);
printf("%d\n",ans);
}
}