AcWing 4957. 飞机降落
原题链接
简单
作者:
来杯whiskey
,
2024-04-02 22:49:34
,
所有人可见
,
阅读 1
#include<iostream>
#include<cstring>
using namespace std;
int n;
int a[15][3];
bool st[15],flag;
void dfs(int k,int last)
{
if(k>=n)
{
flag = true;
return;
}
for(int i = 0;i<n;i++)
{
if(!st[i])
{
if(last>a[i][1]) return;
st[i] = true;
if(last<a[i][0])
{
dfs(k+1,a[i][0]+a[i][2]);
}else{
dfs(k+1,last+a[i][2]);
}
st[i] = false;
}
}
}
int main()
{
int T;
cin>>T;
while(T--)
{
cin>>n;
memset(st,false,sizeof st);
flag = false;
for(int i = 0;i<n;i++)
{
cin>>a[i][0]>>a[i][1]>>a[i][2];
a[i][1]+=a[i][0];
}
dfs(0,0);
if(flag) puts("YES");
else puts("NO");
}
return 0;
}