8629 2024. 01. 24 01:46:56 kukkerman Főzet készítés cpp17 Elfogadva 50/50 157ms 6180 KiB
#include <iostream>
#include <vector>
#include <cstdint>
#include <numeric>

std::vector<std::pair<int, int>> beolvas(std::istream &be) {
    int n;
    be >> n;

    std::vector<std::pair<int, int>> kerdesek(n);
    for (auto &[k, m] : kerdesek) {
        be >> k >> m;
    }

    return kerdesek;
}

void feldolgoz(const std::vector<std::pair<int, int>> &kerdesek) {
    const int m = 32;
    const int n = 500;

    std::vector<std::vector<uint32_t>> dp(n + 1, std::vector<uint32_t>(n + 1, 0));
    for (int a = 1; a <= m; a++) {
        for (int b = 1; b <= m; b++) {
            if (std::gcd(a, b) == 1) {
                for (int i = n; i >= a; i--) {
                    for (int j = n; j >= b; j--) {
                        dp[i][j] = std::max(dp[i][j], dp[i - a][j - b] + 1);
                    }
                }
            }
        }
    }

    for (auto [k, m] : kerdesek) {
        std::cout << dp[k][m] << '\n';
    }
}

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);

    const auto kerdesek = beolvas(std::cin);
    feldolgoz(kerdesek);

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 156ms 3684 KiB
2 Elfogadva 0/0 156ms 3884 KiB
3 Elfogadva 3/3 156ms 4012 KiB
4 Elfogadva 2/2 156ms 4140 KiB
5 Elfogadva 3/3 155ms 4392 KiB
6 Elfogadva 2/2 156ms 4740 KiB
7 Elfogadva 3/3 157ms 4856 KiB
8 Elfogadva 2/2 156ms 4816 KiB
9 Elfogadva 3/3 156ms 4908 KiB
10 Elfogadva 2/2 156ms 5112 KiB
11 Elfogadva 2/2 156ms 5476 KiB
12 Elfogadva 2/2 156ms 5488 KiB
13 Elfogadva 2/2 156ms 5756 KiB
14 Elfogadva 2/2 156ms 5732 KiB
15 Elfogadva 2/2 157ms 6012 KiB
16 Elfogadva 2/2 156ms 6020 KiB
17 Elfogadva 2/2 156ms 5936 KiB
18 Elfogadva 2/2 156ms 5952 KiB
19 Elfogadva 2/2 156ms 5964 KiB
20 Elfogadva 3/3 156ms 5984 KiB
21 Elfogadva 3/3 156ms 6080 KiB
22 Elfogadva 3/3 156ms 6016 KiB
23 Elfogadva 3/3 156ms 6180 KiB