Submission #1307546

#TimeUsernameProblemLanguageResultExecution timeMemory
1307546lvsTug of War (BOI15_tug)C++20
18 / 100
29 ms840 KiB
#include <bits/stdc++.h>
#define int long long
#define zet ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
const int N = 6e4+555, M = 1e6+557, mod = 1e9+7;
int n, k, l[N], r[N], a[N], dp[N][5];
vector <int> st;
bool res;
vector <pair<int, int>>mp;

bool comp(pair<int, int> a, pair<int, int> b) {
	return a.second <= b.second;
}
signed  main() {
	zet
	cin >> n >> k;
	for (int i = 0; i < 2*n; i++) {
		cin >> l[i] >> r[i] >> a[i];
	}
	for (int mk = 1; mk < (1 << (2*n)); mk++) {
		int cnt = 0;
		int ll[n+5], rr[n+5];
		for (int i = 0; i <= n; i++) ll[i] = rr[i] = 0;
		for (int i = 0; i < 2*n; i++) {
			if ((1<<i)&mk) cnt++;
		}
		if (cnt != n) continue;
		int ans = 0;
		bool x = 0;
		for (int i = 0; i < 2*n; i++) {
			if ((1<<i) & mk) {
				ll[l[i]]++;
				if (ll[l[i]] > 1) {
					x = 1;
					break;
				}
				ans += a[i];
			}
			else {
				rr[r[i]]++;
				if (rr[r[i]] > 1) {
					x = 1;
					break;
				}
				ans -= a[i];
			}
		}
		if (abs(ans) <= k && !x){
			res = 1;
			break;
		}
	}
	cout << ((res) ? "YES" : "NO");
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...