#include <bits/stdc++.h>
using namespace std;
#define maxn 500
struct node
{
int s[4];
} p[maxn];
int room[4];
int flag[4];
int main()
{
int t;
scanf("%d",&t);
int cas = 1;
while(t--)
{
int n;
scanf("%d",&n);
for(int i = 0; i < n; i++)
{
for(int j = 0; j < 3; j++)
scanf("%d", &p[i].s[j]);
}
memset(room, 0, sizeof(room));
memset(flag, -1, sizeof(flag));
for(int i = 0; i <= 30000; i++)
{
if(room[0] == i)
flag[0] = -1;
if(room[0] <= i)
{
for(int j = 0; j < n; j++)
{
if(p[j].s[0] != 0)
{
room[0] = i + p[j].s[0];
flag[0] = j;
p[j].s[0] = 0;
break;
}
}
}
if(room[1] == i)
flag[1] = -1;
if(room[1] <= i)
{
for(int j = 0; j < n; j++)
{
if(p[j].s[1] != 0 && p[j].s[0] == 0 && j != flag[0])
{
room[1] = i + p[j].s[1];
flag[1] = j;
p[j].s[1] = 0;
break;
}
}
}
if(room[2] == i)
flag[2] = -1;
if(room[2] <= i)
{
for(int j = 0; j < n; j++)
{
if( p[j].s[2] != 0 && p[j].s[1] == 0 && p[j].s[0] == 0 && j != flag[0] && j != flag[1])
{
room[2] = i + p[j].s[2];
flag[2] = j;
p[j].s[2] = 0;
break;
}
}
}
}
printf("Case #%d: %d\n",cas++,max(room[0],max(room[1],room[2])));
}
}
Problem on Group Trip UVALive - 7219
最新推荐文章于 2022-01-07 19:04:30 发布