Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <map>
- #include <set>
- #include <algorithm>
- #include <numeric>
- #include <queue>
- #include <deque>
- #include <cmath>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- typedef pair<int, int> pii;
- typedef pair<ll, ll> pll;
- #define fast ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
- #define file_in freopen("input.txt", "r", stdin);
- #define all(x) (x).begin(), (x).end()
- #define sz(x) (int)x.size()
- #define fi first
- #define se second
- template<typename T> istream& operator>>(istream &in, vector<T> &v) { for (auto &el : v) { in >> el; } return in; }
- template<typename T> ostream& operator<<(ostream &out, const vector<T> &v) { for (auto &el : v) { out << el << " "; } return out; }
- template<typename T1, typename T2> istream& operator>>(istream &in, pair<T1, T2> &v) { in >> v.fi >> v.se; return in; }
- template<typename T1, typename T2> ostream& operator<<(ostream &out, const pair<T1, T2> &v) { out << v.fi << " " << v.se; return out; }
- void solve() {
- int n;
- cin >> n;
- vector<vector<int>> a(n, vector<int>(3));
- cin >> a;
- sort(all(a), [](vector<int> &l, vector<int> &r){ return l[1] - l[2] < r[1] - r[2]; });
- int last = a[0][0] + a[0][2];
- for (int i = 1; i < sz(a); ++i) {
- if (a[i][1] - max(a[i][0], last) >= a[i][2]) {
- last = max(a[i][0], last) + a[i][2];
- } else {
- cout << 0 << '\n';
- return;
- }
- }
- cout << 1 << '\n';
- }
- int main() {
- fast
- // file_in
- int t;
- cin >> t;
- while (t--) {
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement