Submission #75823279


Source Code Expand

#include <bits/stdc++.h>
#pragma GCC optimize("O3,fast-math")
using namespace std;
using ll = long long;
int n,q,op,a,b,c;
vector<vector<int>> qry;
bool tryy(int s) {
    //cout << "try " << s << endl;
    int ignore=n-s, curserv=s;
    bitset<2020> dp; // master on
    if(curserv==0) dp[0]=1;
    for(int i=1;i<=curserv;i++) dp[i]=1;
    for(auto qq:qry) {
        int op=qq[0], a=qq[1], b=qq[2], c=qq[3];
        //cout << "dp "; for(int i=0;i<=n;i++) cout << dp[i] << " "; cout << endl;
        if(op==1) {
            if(!curserv) continue;
            if(ignore) ignore--;
            else {
                dp[curserv]=0;
                curserv--;
                dp=dp|dp>>1; 
                if(curserv) dp[0]=0;
            }
        }
        if(op==2) {
            if(!curserv && a+b+c==0) continue;
            if(curserv < a+b+c) return false;
            for(int i=0;i<a;i++) dp[i]=0;
            for(int i=-2;i<c;i++) dp[curserv-i]=0;
        }
    }
    //cout << "dp "; for(int i=0;i<=n;i++) cout << dp[i] << " "; cout << endl;
    for(int i=0;i<=curserv;i++) if(dp[i]) return true;
    return false;
}
int alive[2020];
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >> n >> q;
    for(int i=1;i<=n;i++) alive[i]=1;
    for(int i=1;i<=q;i++) {
        cin >> op >> a;
        if(op==1 && alive[a]) alive[a]=0, qry.push_back({1,a,-1,-1});
        if(op==2) cin >> b >> c, qry.push_back({2,a,b,c});
    }

    // parametric
    /*
    int no=-1, yes=n+1;
    while(no+1<yes) {
        int mid = (no+yes)>>1;
        //cout << "try" << mid << endl;
        if(tryy(mid)) yes=mid;
        else no=mid;
    }
    */
    for(int i=0;i<=n;i++) {
        if(tryy(i)) {
            cout << i;
            return 0;
        }
    }
    cout << -1;
    //cout << (yes==n+1 ? -1 : yes);
}

Submission Info

Submission Time
Task H - CUBRID HA Load Balance
User Hakuaa_2
Language C++23 (GCC 15.2.0)
Score 0
Code Size 1888 Byte
Status WA
Exec Time 8 ms
Memory 3652 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status AC
AC × 43
WA × 7
Set Name Test Cases
Sample
All 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50
Case Name Status Exec Time Memory
01 AC 2 ms 3300 KiB
02 AC 1 ms 3324 KiB
03 WA 1 ms 3256 KiB
04 AC 1 ms 3292 KiB
05 WA 1 ms 3488 KiB
06 AC 1 ms 3384 KiB
07 AC 1 ms 3296 KiB
08 AC 1 ms 3312 KiB
09 AC 1 ms 3296 KiB
10 AC 1 ms 3256 KiB
11 AC 1 ms 3384 KiB
12 AC 1 ms 3320 KiB
13 AC 1 ms 3432 KiB
14 WA 1 ms 3324 KiB
15 WA 1 ms 3560 KiB
16 AC 1 ms 3384 KiB
17 AC 1 ms 3372 KiB
18 AC 4 ms 3584 KiB
19 AC 1 ms 3524 KiB
20 AC 1 ms 3256 KiB
21 AC 1 ms 3496 KiB
22 AC 3 ms 3512 KiB
23 AC 1 ms 3384 KiB
24 AC 1 ms 3312 KiB
25 AC 3 ms 3556 KiB
26 AC 1 ms 3312 KiB
27 AC 1 ms 3428 KiB
28 AC 8 ms 3616 KiB
29 AC 1 ms 3292 KiB
30 AC 1 ms 3380 KiB
31 AC 5 ms 3384 KiB
32 AC 1 ms 3384 KiB
33 AC 1 ms 3560 KiB
34 AC 6 ms 3652 KiB
35 AC 1 ms 3488 KiB
36 WA 1 ms 3384 KiB
37 AC 1 ms 3428 KiB
38 AC 5 ms 3652 KiB
39 WA 1 ms 3324 KiB
40 AC 4 ms 3452 KiB
41 WA 1 ms 3312 KiB
42 AC 4 ms 3512 KiB
43 AC 1 ms 3260 KiB
44 AC 1 ms 3584 KiB
45 AC 1 ms 3292 KiB
46 AC 3 ms 3556 KiB
47 AC 1 ms 3384 KiB
48 AC 1 ms 3296 KiB
49 AC 1 ms 3616 KiB
50 AC 4 ms 3652 KiB