12352022-03-27 18:41:28Valaki2Növekvő Ödön és a Másoló Varázslócpp14Futási hiba 20/100603ms488992 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 + n, 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
1Elfogadva3ms1936 KiB
2Futási hiba282ms444332 KiB
subtask20/5
3Futási hiba4ms2568 KiB
4Futási hiba4ms3096 KiB
5Futási hiba4ms3588 KiB
subtask310/10
6Elfogadva1ms3372 KiB
7Elfogadva1ms3372 KiB
8Elfogadva1ms3380 KiB
subtask40/15
9Elfogadva3ms4088 KiB
10Elfogadva4ms4096 KiB
11Futási hiba2ms3524 KiB
12Elfogadva3ms4116 KiB
subtask55/5
13Elfogadva374ms199380 KiB
14Elfogadva356ms199432 KiB
15Elfogadva363ms199536 KiB
subtask65/5
16Elfogadva363ms199636 KiB
17Elfogadva375ms199704 KiB
18Elfogadva358ms199832 KiB
19Elfogadva360ms199936 KiB
subtask70/10
20Időlimit túllépés603ms200004 KiB
21Elfogadva564ms200104 KiB
22Elfogadva379ms200204 KiB
23Elfogadva196ms75020 KiB
24Futási hiba3ms4736 KiB
subtask80/25
25Futási hiba356ms456616 KiB
26Futási hiba261ms456684 KiB
27Futási hiba261ms457024 KiB
28Elfogadva1ms1900 KiB
29Futási hiba259ms456988 KiB
30Futási hiba240ms456244 KiB
31Futási hiba244ms453936 KiB
32Futási hiba247ms456884 KiB
33Futási hiba263ms470180 KiB
34Futási hiba256ms477024 KiB
35Futási hiba248ms483016 KiB
36Futási hiba270ms483424 KiB
37Futási hiba307ms483152 KiB
38Futási hiba317ms482864 KiB
39Futási hiba266ms486844 KiB
40Futási hiba256ms485336 KiB
41Futási hiba256ms488992 KiB
42Futási hiba250ms483396 KiB
43Futási hiba248ms456968 KiB
44Futási hiba252ms448812 KiB
45Futási hiba240ms457548 KiB
subtask90/25
46Futási hiba300ms482920 KiB
47Futási hiba286ms399692 KiB
48Futási hiba328ms472920 KiB
49Futási hiba280ms461448 KiB
50Futási hiba293ms482460 KiB
51Futási hiba284ms457584 KiB
52Futási hiba284ms473784 KiB
53Futási hiba268ms456416 KiB
54Futási hiba305ms475152 KiB
55Futási hiba282ms466392 KiB