AcWing 4957. 飞机降落
原题链接
简单
作者:
lyxcqupt
,
2024-03-15 20:43:34
,
所有人可见
,
阅读 12
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
static int[] Ti;
static int[] Di;
static int[] Li;
static boolean flag = false;
static boolean[] vis;
static int time;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
while(T-- > 0){
flag = false;
int N = scan.nextInt();
Ti = new int[N+1];
Di = new int[N+1];
Li = new int[N+1];
vis = new boolean[N+1];
time = 0;
for(int i = 1;i <= N;i++){
Ti[i] = scan.nextInt();
Di[i] = scan.nextInt();
Li[i] = scan.nextInt();
}
dfs(1,N);
if(flag) System.out.println("YES");
else System.out.println("NO");
}
scan.close();
}
public static void dfs(int u,int n){
if(u > n){
flag = true;
return;
}
for(int i = 1;i <= n;i++){
if(!vis[i] && time <= Ti[i] + Di[i]){
int temp = time;
vis[i] = true;
time = Math.max(time,Ti[i]) + Li[i];
dfs(u+1,n);
vis[i] = false;
time = temp;
}
}
}
}