思路:
1. 将corridor抽象为一个计数器数组,一对房间的corridor为一个元素,然后计算每个过道元素被经过几次,整个数组被经过最多的过道元素即为最少搬运组数。
//132k 0ms
#include <cstdio>
#include <cstdlib>
#include <cstring>
int main() {
int T, N, st, en;
char corridor[200];
scanf("%d", &T);
while (T--) {
memset(corridor, 0, 200);
scanf("%d", &N);
for (int i = 0; i < N; ++i) {
scanf("%d %d", &st, &en);
if (en < st) {
en ^= st, st ^= en, en ^= st;
}
st = st & 1 ? st / 2 : (st - 1) / 2;
en = en & 1 ? en / 2 : (en - 1) / 2;
for ( ; st <= en; ++st)
++corridor[st];
}
char max = corridor[0];
for (int i = 1; i < 200; ++i) {
if (corridor[i] > max)
max = corridor[i];
}
printf("%d\n", max * 10);
}
return 0;
}