#include<bits/stdc++.h>
using namespace std;
int T, N;
struct plane
{
int T; // 到达机场上空的时刻
int D; // 能继续盘旋的时间
int L; // 降落过程需要的时间
};
plane a[20];
int vis[20] = {0};
int flag = 0; // 标志位,表示是否能成功降落
void dfs(int x, int time)
{
if(x > N)
{
flag = 1;
}
if(flag)
{
return;
}
for(int i = 1; i <= N; i++)
{
if(!vis[i])
{
if(a[i].T + a[i].D < time)
{
return;
}
vis[i] = 1;
dfs(x+1, max(time, a[i].T) + a[i].L);
vis[i] = 0;
}
}
}
int main()
{
cin >> T;
while(T--)
{
cin >> N;
flag = 0;
for(int i = 1; i <= N; i++)
{
cin >> a[i].T >> a[i].D >> a[i].L;
}
dfs(1,0);
if(flag == 1)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
return 0;
}
0 回复
0 转发
0 喜欢
5 阅读



