Submission #1370378

#TimeUsernameProblemLanguageResultExecution timeMemory
1370378i_love_springPinball (JOI14_pinball)C++20
11 / 100
129 ms4352 KiB
#include <bits/stdc++.h>

using namespace std;

#define ar array
#define ll long long 
const int inf = 2e9;
const ll linf = 1e18;

void solve() {
    int m, n;
    cin >> m >> n;
    vector<ar<int, 4>> a(m);
    for (int i = 0; i < m;i++) 
        for (int j = 0; j < 4;j++)
            cin >> a[i][j];

    ll ans = linf;
    for (int mask = 0; mask < (1 << m); mask++) {
        ll cur = 0;
        vector<int> v;
        for (int i = 0; i < m;i++) 
            if (mask >> i & 1)
                v.push_back(i), cur += a[i][3];
        
        int ok = 1, f = 1;
        vector<int> vis(n + 1, 0);
        reverse(v.begin(), v.end());
        for (int id : v) {
            auto [l, r, c, _] = a[id];
            if (!f) {
                if (!vis[c]) {
                    ok = 0;
                    break;
                }
            }
            f = 0;
            for (int i = l; i <= r;i++) 
                vis[i] = 1;
        }

        for (int i = 1; i <= n;i++)
            ok &= vis[i];
        
        if (ok)
            ans = min(ans, cur);
    }

    cout << (ans == linf ? -1 : ans) << "\n";


}

int32_t main() { 

#ifdef Behruz
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif 

    ios :: sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    solve();

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