1.10分代码
cpp
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long int
int n;
int a[20], t[20], d[20], l[20];
int dfs(int x, int time) {
if (x >= n)
return 1;
for (int i = 1; i <= n; i++) {
if (!a[i] && t[i] + d[i] >= time) {
a[i] = 1;
int u = max(time, t[i])+l[i];
if (dfs(x + 1, u))
return 1;
a[i] = 0;//回溯
}
}
return 0;
}
void solve() {
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> t[i] >> d[i] >> l[i];
}
memset(a, 0, sizeof(a));
if (dfs(1, -1))
cout << "YES" << endl;
else
cout << "NO" << endl;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
cin >> t;
while (t--)
solve();
return 0;
}