Submission #1307531

#TimeUsernameProblemLanguageResultExecution timeMemory
1307531shisp1Tug of War (BOI15_tug)C++20
18 / 100
15 ms828 KiB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define int long long
using namespace std;
const int mod = 1e9+7;
const int N = 2e5+5;
int n,k, l[N],r[N],s[N];
void solve() {
    cin >> n >> k;
    for(int i = 0;i<2*n;i++) {
        cin >> l[i] >> r[i] >> s[i];
    }
    for(int mask = 0;mask<(1<<(2*n));mask++) {
        if(__builtin_popcount(mask)!=n) continue;
        vector<int>left(n+1), right(n+1);
        bool ok = true;
        int sum1 = 0, sum2 = 0;
        for(int i = 0;i<2*n;i++) {
            if(mask&(1<<i)) {
                if(right[r[i]]) {
                    ok = false;
                    break;
                }
                right[r[i]] = true;
                sum2+=s[i];
            } else {
                if(left[l[i]]) {
                    ok = false;
                    break;
                }
                left[l[i]] = true;
                sum1+=s[i];
            }
        }
        if(!ok || abs(sum1-sum2)>k) {
            continue;
        }
        cout << "YES\n";
        return;
    }
    cout << "NO\n";

}
signed main() {
    ios_base::sync_with_stdio(0);
    int tt=1;
    //cin >> tt;
    while(tt--) {
        solve();
    }





    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...