12362022-03-27 18:43:59Valaki2Növekvő Ödön és a Másoló Varázslócpp14Futási hiba 50/100598ms473728 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second

const int inf = 1e9 + 7;

void solve() {
    int n, m;
    cin >> n >> m;
    vector<int> a(1 + n, 0);
    vector<int> b(1 + m, 0);
    for(int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for(int i = 1; i <= m; i++) {
        cin >> b[i];
    }
    sort(b.begin() + 1, b.end());
    vector<int> req(1 + n, inf);
    // req[i]: minimum hany valtoztatas kell mindenkepp (az elso i elemen ertelmezve)
    vector<vector<int> > dp(1 + n, vector<int> (1 + n, inf));
    // dp[i][j]: max j darab valtoztatassal mi a legkisebb maximum (az elso i elemen ertelmezve)
    // dp[i] csokkeno
    for(int j = 0; j <= n; j++) {
        dp[0][j] = 0;
    }
    req[0] = 0;
    for(int i = 1; i <= n; i++) {
        for(int j = req[i - 1]; j <= n; j++) {
            if(dp[i - 1][j] < a[i]) {
                dp[i][j] = a[i];
            }
        }
        for(int j = req[i - 1]; j < n; j++) {
            auto it = upper_bound(b.begin(), b.end(), dp[i - 1][j]);
            if(it == b.end()) {
                continue;
            }
            int num = *it;
            dp[i][j + 1] = min(dp[i][j + 1], num);
        }
        for(int j = 0; j <= n; j++) {
            if(dp[i][j] != inf) {
                req[i] = j;
                break;
            }
        }
    }
    cout << req[n] << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva2ms2028 KiB
2Futási hiba241ms445392 KiB
subtask25/5
3Elfogadva45ms5216 KiB
4Elfogadva43ms7156 KiB
5Elfogadva41ms9112 KiB
subtask310/10
6Elfogadva1ms7756 KiB
7Elfogadva1ms7760 KiB
8Elfogadva1ms7784 KiB
subtask415/15
9Elfogadva3ms8476 KiB
10Elfogadva3ms8480 KiB
11Elfogadva2ms8184 KiB
12Elfogadva2ms8496 KiB
subtask55/5
13Elfogadva363ms202392 KiB
14Elfogadva361ms198848 KiB
15Elfogadva361ms198952 KiB
subtask65/5
16Elfogadva358ms199088 KiB
17Elfogadva363ms199244 KiB
18Elfogadva365ms199304 KiB
19Elfogadva360ms199384 KiB
subtask710/10
20Elfogadva598ms199476 KiB
21Elfogadva555ms199564 KiB
22Elfogadva374ms199664 KiB
23Elfogadva167ms74480 KiB
24Elfogadva483ms181244 KiB
subtask80/25
25Futási hiba240ms456312 KiB
26Futási hiba246ms456504 KiB
27Futási hiba248ms456488 KiB
28Elfogadva1ms1948 KiB
29Futási hiba273ms455672 KiB
30Futási hiba250ms456292 KiB
31Futási hiba250ms457752 KiB
32Futási hiba259ms461436 KiB
33Futási hiba259ms469896 KiB
34Futási hiba263ms473716 KiB
35Futási hiba246ms473728 KiB
36Futási hiba247ms471836 KiB
37Futási hiba248ms473032 KiB
38Futási hiba256ms473020 KiB
39Futási hiba257ms472816 KiB
40Futási hiba254ms473092 KiB
41Futási hiba261ms472864 KiB
42Futási hiba239ms473344 KiB
43Futási hiba261ms472972 KiB
44Futási hiba245ms470276 KiB
45Futási hiba250ms473080 KiB
subtask90/25
46Futási hiba282ms473116 KiB
47Futási hiba284ms472916 KiB
48Futási hiba397ms471540 KiB
49Futási hiba284ms472944 KiB
50Futási hiba305ms470664 KiB
51Futási hiba284ms473508 KiB
52Futási hiba272ms473092 KiB
53Futási hiba284ms473424 KiB
54Futási hiba282ms473696 KiB
55Futási hiba289ms473136 KiB