/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 3ms 24.277 MiB
#2 Accepted 5ms 24.277 MiB
#3 Accepted 459ms 24.297 MiB
#4 Accepted 61ms 24.305 MiB
#5 Accepted 44ms 24.312 MiB
#6 Accepted 11ms 24.277 MiB
#7 Accepted 471ms 24.305 MiB
#8 Accepted 3ms 24.277 MiB
#9 Accepted 3ms 24.277 MiB
#10 Accepted 3ms 24.277 MiB
#11 Accepted 3ms 24.277 MiB
#12 Accepted 10ms 24.277 MiB
#13 Accepted 56ms 24.297 MiB
#14 Accepted 9ms 24.277 MiB
#15 Accepted 7ms 24.277 MiB
#16 Accepted 62ms 24.309 MiB
#17 Accepted 3ms 24.277 MiB
#18 Accepted 12ms 24.277 MiB
#19 Accepted 112ms 24.305 MiB
#20 Accepted 147ms 24.297 MiB
#21 Accepted 42ms 24.277 MiB
#22 Accepted 25ms 24.309 MiB
#23 Accepted 15ms 24.188 MiB
#24 Accepted 3ms 24.277 MiB
#25 Accepted 13ms 24.277 MiB
#26 Accepted 12ms 24.312 MiB
#27 Accepted 80ms 24.305 MiB
#28 Accepted 3ms 24.277 MiB
#29 Accepted 3ms 24.277 MiB
#30 Accepted 4ms 24.277 MiB
#31 Accepted 4ms 24.277 MiB
#32 Accepted 5ms 24.25 MiB
#33 Accepted 7ms 24.277 MiB
#34 Accepted 6ms 24.188 MiB
#35 Accepted 7ms 24.277 MiB
#36 Accepted 12ms 24.277 MiB
#37 Accepted 8ms 24.301 MiB
#38 Accepted 10ms 24.277 MiB
#39 Accepted 12ms 24.277 MiB

Code

/*One touch and i IGNITE*/
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
#define endl "\n"
#define Endl "\n"

const int N = 2e5 + 5;
int tc, n, casee = 1, a, b, c, d;
int dp[50][50][50][50];

struct R {
    int a, b, c, d;
};

vector<R> v;

void buildBaseCase() {
    /// this is --a, b, c, d
    v.push_back({0, 0, 3, 0});
    v.push_back({1, 1, 2, 0});
    v.push_back({3, 0, 2, 0});
    v.push_back({0, 0, 1, 2});
    v.push_back({1, 1, 1, 1});
    v.push_back({3, 0, 1, 1});
    v.push_back({0, 3, 1, 0});
    v.push_back({2, 2, 1, 0});
    v.push_back({4, 1, 1, 0});
    v.push_back({6, 0, 1, 0});
    v.push_back({1, 1, 0, 2});
    v.push_back({3, 0, 0, 2});
    v.push_back({2, 2, 0, 1});
    v.push_back({4, 1, 0, 1});
    v.push_back({6, 0, 0, 1});
    v.push_back({1, 4, 0, 0});
    v.push_back({3, 3, 0, 0});
    v.push_back({5, 2, 0, 0});
    v.push_back({7, 1, 0, 0});
    v.push_back({9, 0, 0, 0});
}

int rec(int a, int b, int c, int d) {

    bool notPossible = true;
    for (auto i : v) {
        if (i.a <= a && i.b <= b && i.c <= c && i.d <= d) {
            notPossible = false;
            break;
        }
    }
    if (notPossible)
        return 0;
    int &ret = dp[a][b][c][d];
    if (~ret)
        return ret;
    ret = 0;

    for (auto i : v) {
        if (i.a <= a && i.b <= b && i.c <= c && i.d <= d) {
            ret = max(ret, 1 + rec(a - i.a, b - i.b, c - i.c, d - i.d));
        }
    }

    return ret;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0); // cout.tie(0);
    buildBaseCase();
    cin >> tc;
    while (tc--) {
        cin >> a >> b >> c >> d;
        memset(dp, -1, sizeof dp);
        int Ans = rec(a, b, c, d);
        cout << "Case " << casee++ << ": " << Ans << endl;
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1014 FIFA World Cup 2022 Again!
Language
C++17 (G++ 13.2.0)
Submit At
2023-12-04 17:19:23
Judged At
2023-12-07 17:06:22
Judged By
Score
390
Total Time
471ms
Peak Memory
24.312 MiB