#include
using namespace std;
#define int long long
int n;
const int N=1e5+1;
struct fly
{
int t,d,l;
}a[N];
int last[N];
int vis[N];
bool x;
void dfs(int cnt,int time)
{
for(int i=1;i<=n;++i)
{
if(!vis[i]&&time>last[i])return;
}
if(cnt==n){x=1;return;}
for(int i=1;i<=n;++i)
{
if(vis[i])continue;
vis[i]=1;
if(time<=a[i].t)
dfs(cnt+1,a[i].t+a[i].l);
else dfs(cnt+1,time+a[i].l);
vis[i]=0;
}
}
signed main()
{
int T;cin>>T;
while(T--)
{
x=0;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>a[i].t>>a[i].d>>a[i].l;
last[i]=a[i].t+a[i].d;
}
dfs(0,0);
if(x)puts("YES");
else puts("NO");
}
return 0;
}
0.0分
29 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复