290402026-06-03 20:52:09algoproDombokcpp17Elfogadva 100/100119ms98500 KiB
// UUID: aebdf73f-fd94-47ef-93d3-f3184aad9914
#include <bits/stdc++.h>
using ll = long long;
using namespace std;

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    // dp[i][j][epult (0/1)] = első i domb közül j db-ra építek, ha az utolsóra nincs/van ház
	// dp[i][j][0] = min{dp[i-1][j][1], dp[i-2][j][1], ...} - ha nem lehet vmi, INF
    // dp[i][j][1] = dp[i-1][j-1]

    int n; cin >> n;
    vector<int> a(n+1, 0);
    for (int i = 1; i <= n; i++) cin >> a[i];

    int dp[5001][2501][2];
    for (int i = 0; i <= 5000; i++) {
        for (int j = 0; j <= 2500; j++) {
            dp[i][j][0] = dp[i][j][1] = 1e9;
        }
    }
    dp[0][0][0] = dp[1][0][0] = dp[1][1][1] = 0;

    for (int i = 2; i <= n; i++) {
        dp[i][0][0] = 0;
        for (int j = 1; j <= (n+1) / 2; j++) {
            int both = max(0, a[i-1] - min(a[i-2], a[i]) + 1);
            // dp[i][j][0]
            dp[i][j][0] = min(dp[i-1][j][0], dp[i-1][j][1] + max(0, a[i] - a[i-1] + 1));
            // dp[i][j][1] - előtte nem áll ház, itt áll
            dp[i][j][1] = min(dp[i-2][j-1][0] + max(0, a[i-1] - a[i] + 1), dp[i-2][j-1][1] + both);
        }
    }

    for (int i = 1; i <= (n+1) / 2; i++) {
        cout << min(dp[n][i][0], dp[n][i][1]) << " ";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
00/0
1Elfogadva90ms98100 KiB
2Elfogadva72ms98116 KiB
3Elfogadva90ms98100 KiB
17/7
4Elfogadva89ms98100 KiB
5Elfogadva90ms98100 KiB
6Elfogadva72ms98100 KiB
7Elfogadva74ms98100 KiB
8Elfogadva92ms98096 KiB
9Elfogadva90ms98096 KiB
10Elfogadva74ms98500 KiB
11Elfogadva74ms98088 KiB
12Elfogadva92ms98308 KiB
13Elfogadva72ms98164 KiB
215/15
14Elfogadva90ms98100 KiB
15Elfogadva74ms98100 KiB
16Elfogadva75ms98100 KiB
17Elfogadva90ms98104 KiB
18Elfogadva90ms98176 KiB
19Elfogadva74ms98144 KiB
20Elfogadva89ms98284 KiB
21Elfogadva71ms98100 KiB
22Elfogadva90ms98156 KiB
23Elfogadva72ms98188 KiB
24Elfogadva72ms98252 KiB
25Elfogadva90ms98100 KiB
26Elfogadva75ms98100 KiB
27Elfogadva89ms98100 KiB
28Elfogadva71ms98156 KiB
313/13
29Elfogadva74ms98188 KiB
30Elfogadva74ms98112 KiB
31Elfogadva90ms98100 KiB
32Elfogadva89ms98104 KiB
33Elfogadva72ms98100 KiB
34Elfogadva92ms98096 KiB
35Elfogadva71ms98120 KiB
36Elfogadva87ms98100 KiB
37Elfogadva74ms98244 KiB
38Elfogadva74ms98100 KiB
39Elfogadva87ms98196 KiB
40Elfogadva89ms98152 KiB
418/18
41Elfogadva90ms98100 KiB
42Elfogadva72ms98100 KiB
43Elfogadva90ms98112 KiB
44Elfogadva74ms98312 KiB
45Elfogadva72ms98152 KiB
46Elfogadva74ms98100 KiB
47Elfogadva89ms98224 KiB
48Elfogadva89ms98124 KiB
49Elfogadva89ms98136 KiB
522/22
50Elfogadva74ms98296 KiB
51Elfogadva72ms98100 KiB
52Elfogadva90ms98088 KiB
53Elfogadva92ms98104 KiB
54Elfogadva71ms98200 KiB
55Elfogadva72ms98320 KiB
56Elfogadva90ms98220 KiB
57Elfogadva90ms98300 KiB
58Elfogadva90ms98096 KiB
59Elfogadva74ms98100 KiB
60Elfogadva71ms98124 KiB
61Elfogadva90ms98316 KiB
62Elfogadva72ms98112 KiB
63Elfogadva89ms98156 KiB
625/25
64Elfogadva75ms98148 KiB
65Elfogadva74ms98324 KiB
66Elfogadva116ms98100 KiB
67Elfogadva119ms98356 KiB
68Elfogadva101ms98356 KiB
69Elfogadva103ms98356 KiB
70Elfogadva118ms98368 KiB
71Elfogadva116ms98232 KiB
72Elfogadva118ms98300 KiB
73Elfogadva100ms98356 KiB
74Elfogadva98ms98228 KiB
75Elfogadva115ms98140 KiB
76Elfogadva115ms98372 KiB