286122026-05-24 20:32:45kukkermanSzámsorjáték (40 pont)cpp17Futási hiba 14/4039ms32000 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>

struct Elsok {
    int i, j;
};

using Szamsor = std::vector<int>;
using Jatszmak = std::vector<Elsok>;

void beolvas(Szamsor &s1, Szamsor &s2, Jatszmak &jatszmak, std::istream &be = std::cin) {
    int n, m, k;
    be >> n >> m >> k;

    s1.resize(n);
    for (auto &x : s1) {
        be >> x;
    }

    s2.resize(m);
    for (auto &x : s2) {
        be >> x;
    }

    jatszmak.resize(k);
    for (auto &[i, j] : jatszmak) {
        be >> i >> j;
    }
}

void max_pontszam_dp_bottom_up(Szamsor &s1, Szamsor &s2, const Jatszmak &jatszmak) {
    const int n = s1.size();
    const int m = s2.size();
    std::vector<std::vector<int>> dp(n + 1, std::vector<int>(m + 1));

    for (int i = n - 2; i >= 0; i--) {
        s1[i] += s1[i + 1];
    }

    for (int j = m - 2; j >= 0; j--) {
        s2[j] += s2[j + 1];
    }

    dp[n][m] = 0;

    for (int i = n - 1; i >= 0; i--) {
        dp[i][m] = s1[i] - dp[i + 1][m];
    }

    for (int j = m - 1; j >= 0; j--) {
        dp[n][j] = s2[j] - dp[n][j + 1];
    }

    for (int i = n - 1; i >= 0; i--) {
        for (int j = m - 1; j >= 0; j--) {
            dp[i][j] = s1[i] + s2[j] - std::min({ dp[i + 1][j], dp[i][j + 1], dp[i + 1][j + 1] });
        }
    }

    for (const auto [i, j] : jatszmak) {
        std::cout << dp[i - 1][j - 1] << '\n';
    }
}

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

    Szamsor s1, s2;
    Jatszmak jatszmak;
    beolvas(s1, s2, jatszmak);

    max_pontszam_dp_bottom_up(s1, s2, jatszmak);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base14/40
1Elfogadva0/01ms316 KiB
2Elfogadva0/039ms20276 KiB
3Elfogadva1/12ms820 KiB
4Elfogadva1/12ms820 KiB
5Elfogadva1/16ms2768 KiB
6Elfogadva1/16ms3092 KiB
7Elfogadva1/11ms316 KiB
8Elfogadva1/12ms1016 KiB
9Elfogadva1/14ms832 KiB
10Elfogadva1/12ms820 KiB
11Elfogadva1/12ms820 KiB
12Elfogadva1/13ms820 KiB
13Elfogadva1/19ms4296 KiB
14Elfogadva1/19ms4280 KiB
15Elfogadva1/18ms4404 KiB
16Elfogadva1/18ms4404 KiB
17Futási hiba0/235ms32000 KiB
18Futási hiba0/235ms32000 KiB
19Futási hiba0/229ms32000 KiB
20Futási hiba0/230ms32000 KiB
21Futási hiba0/232ms32000 KiB
22Futási hiba0/232ms32000 KiB
23Futási hiba0/337ms32000 KiB
24Futási hiba0/337ms32000 KiB
25Futási hiba0/437ms32000 KiB
26Futási hiba0/437ms32000 KiB