/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 11ms 24.352 MiB
#2 Accepted 25ms 24.426 MiB
#3 Accepted 631ms 24.426 MiB
#4 Accepted 117ms 24.43 MiB
#5 Accepted 92ms 24.434 MiB
#6 Accepted 60ms 24.43 MiB
#7 Accepted 643ms 24.43 MiB
#8 Accepted 12ms 24.391 MiB
#9 Accepted 12ms 24.355 MiB
#10 Accepted 12ms 24.355 MiB
#11 Accepted 11ms 24.188 MiB
#12 Accepted 48ms 24.422 MiB
#13 Accepted 109ms 24.422 MiB
#14 Accepted 18ms 24.43 MiB
#15 Accepted 14ms 24.395 MiB
#16 Accepted 94ms 24.426 MiB
#17 Accepted 11ms 24.426 MiB
#18 Accepted 39ms 24.422 MiB
#19 Accepted 196ms 24.434 MiB
#20 Accepted 236ms 24.426 MiB
#21 Accepted 89ms 24.43 MiB
#22 Accepted 60ms 24.43 MiB
#23 Accepted 36ms 24.238 MiB
#24 Accepted 11ms 24.426 MiB
#25 Accepted 33ms 24.297 MiB
#26 Accepted 39ms 24.426 MiB
#27 Accepted 129ms 24.426 MiB
#28 Accepted 11ms 24.43 MiB
#29 Accepted 12ms 24.195 MiB
#30 Accepted 12ms 24.422 MiB
#31 Accepted 16ms 24.426 MiB
#32 Accepted 18ms 24.43 MiB
#33 Accepted 27ms 24.344 MiB
#34 Accepted 21ms 24.422 MiB
#35 Accepted 27ms 24.418 MiB
#36 Accepted 29ms 24.418 MiB
#37 Accepted 25ms 24.254 MiB
#38 Accepted 27ms 24.301 MiB
#39 Accepted 44ms 24.434 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:26:42
Judged At
2023-12-07 17:06:34
Judged By
Score
390
Total Time
643ms
Peak Memory
24.434 MiB