Submission #1307574

#TimeUsernameProblemLanguageResultExecution timeMemory
1307574lvsTug of War (BOI15_tug)C++20
41 / 100
29 ms2148 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 <int> mp[N], m[N]; 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]; mp[l[i]].push_back(i); m[r[i]].push_back(i); } if (n <= 10) { 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; } } } else { res = 1; for (int i = 1; i<= n; i++) { if (m[i].size() == 0 || mp[i].size() == 0) res = 0; } } 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...