10807 2024. 04. 15 10:27:30 Ablablabla Autó-tortúra cpp17 Időlimit túllépés 0/100 1.585s 76388 KiB
#include <bits/stdc++.h>

using namespace std;

const int INF = 2e9 + 7;

vector<vector<int>> tav;
vector<int> latogat;
int n, m, k, l, b;
vector<int> kut;
vector<vector<int>> dp;

int megold(int ind, int tank){
    if(ind == l - 1){
        if(tank < 0){
            return INF;
        }

        return 0;
    } else if(tank <= 0){
        return INF;
    } else if(dp[ind][tank] != -1){
        return dp[ind][tank];
    }

    int a = megold(ind + 1, tank - tav[latogat[ind]][latogat[ind + 1]]) + tav[latogat[ind]][latogat[ind + 1]];

    int mini = INF;
    int minInd = 0;
    for(int i = 0; i < b; i++){
        if(tav[latogat[ind]][kut[i]] > tank) continue;

        int akt = tav[kut[i]][latogat[ind + 1]];
        if(mini > akt){
            mini = akt;
            minInd = kut[i];
        }
    }

    int b = megold(ind + 1, k - mini) + tav[latogat[ind]][minInd] + tav[minInd][latogat[ind + 1]];

    return dp[ind][tank] = min(a, b);
}

int main()
{
    cin >> n >> m >> k;

    vector<vector<int>> csucsok(n, vector<int>());
    tav.assign(n, vector<int>(n, INF));
    for(int i = 0; i < m; i++){
        int a, b;
        cin >> a >> b;
        a--; b--;

        csucsok[a].push_back(b);
        csucsok[b].push_back(a);
        tav[a][b] = 1;
        tav[b][a] = 1;
    }

    for(int i = 0; i < n; i++){
        tav[i][i] = 0;
    }

    for(int l = 0; l < n; l++){
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                tav[i][j] = min(tav[i][j], tav[i][k] + tav[k][j]);
            }
        }
    }

    cin >> l;
    latogat.assign(l, 0);
    for(int &x : latogat){
        cin >> x;
        x--;
    }

    cin >> b;
    kut.assign(b, 0);
    for(int &x : kut){
        cin >> x;
        x--;
    }

    dp.assign(l, vector<int>(k + 1, -1));
    cout << megold(0, k) << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1812 KiB
2 Időlimit túllépés 1.555s 20924 KiB
subtask2 0/12
3 Futási hiba 3ms 2728 KiB
4 Futási hiba 3ms 2644 KiB
5 Futási hiba 3ms 2848 KiB
6 Futási hiba 3ms 3052 KiB
7 Hibás válasz 2ms 2956 KiB
8 Hibás válasz 3ms 3064 KiB
9 Futási hiba 3ms 3288 KiB
10 Hibás válasz 3ms 3168 KiB
subtask3 0/18
11 Futási hiba 3ms 2728 KiB
12 Futási hiba 3ms 2644 KiB
13 Futási hiba 3ms 2848 KiB
14 Futási hiba 3ms 3052 KiB
15 Hibás válasz 2ms 2956 KiB
16 Hibás válasz 3ms 3064 KiB
17 Futási hiba 3ms 3288 KiB
18 Hibás válasz 3ms 3168 KiB
19 Futási hiba 4ms 3576 KiB
20 Futási hiba 3ms 4044 KiB
21 Futási hiba 3ms 4260 KiB
22 Futási hiba 3ms 4520 KiB
23 Futási hiba 3ms 4728 KiB
24 Futási hiba 30ms 4692 KiB
25 Futási hiba 30ms 4792 KiB
26 Futási hiba 30ms 4904 KiB
27 Futási hiba 29ms 4904 KiB
subtask4 0/25
28 Futási hiba 3ms 2728 KiB
29 Futási hiba 3ms 2644 KiB
30 Futási hiba 3ms 2848 KiB
31 Futási hiba 3ms 3052 KiB
32 Hibás válasz 2ms 2956 KiB
33 Hibás válasz 3ms 3064 KiB
34 Futási hiba 3ms 3288 KiB
35 Hibás válasz 3ms 3168 KiB
36 Időlimit túllépés 1.57s 39024 KiB
37 Időlimit túllépés 1.526s 39140 KiB
38 Időlimit túllépés 1.585s 39288 KiB
39 Időlimit túllépés 1.537s 39396 KiB
40 Időlimit túllépés 1.58s 39356 KiB
41 Időlimit túllépés 1.57s 39440 KiB
42 Időlimit túllépés 1.565s 39636 KiB
43 Időlimit túllépés 1.575s 39592 KiB
44 Időlimit túllépés 1.564s 39656 KiB
45 Időlimit túllépés 1.57s 39788 KiB
subtask5 0/24
46 Időlimit túllépés 1.577s 39724 KiB
47 Időlimit túllépés 1.542s 39664 KiB
48 Időlimit túllépés 1.57s 39620 KiB
49 Időlimit túllépés 1.577s 39596 KiB
50 Időlimit túllépés 1.565s 39588 KiB
51 Időlimit túllépés 1.562s 39700 KiB
52 Időlimit túllépés 1.56s 39748 KiB
53 Időlimit túllépés 1.574s 39700 KiB
54 Időlimit túllépés 1.569s 39648 KiB
55 Időlimit túllépés 1.562s 39580 KiB
subtask6 0/21
56 Futási hiba 3ms 2728 KiB
57 Futási hiba 3ms 2644 KiB
58 Futási hiba 3ms 2848 KiB
59 Futási hiba 3ms 3052 KiB
60 Hibás válasz 2ms 2956 KiB
61 Hibás válasz 3ms 3064 KiB
62 Futási hiba 3ms 3288 KiB
63 Hibás válasz 3ms 3168 KiB
64 Futási hiba 4ms 3576 KiB
65 Futási hiba 3ms 4044 KiB
66 Futási hiba 3ms 4260 KiB
67 Futási hiba 3ms 4520 KiB
68 Futási hiba 3ms 4728 KiB
69 Futási hiba 30ms 4692 KiB
70 Futási hiba 30ms 4792 KiB
71 Futási hiba 30ms 4904 KiB
72 Futási hiba 29ms 4904 KiB
73 Időlimit túllépés 1.57s 39024 KiB
74 Időlimit túllépés 1.526s 39140 KiB
75 Időlimit túllépés 1.585s 39288 KiB
76 Időlimit túllépés 1.537s 39396 KiB
77 Időlimit túllépés 1.58s 39356 KiB
78 Időlimit túllépés 1.57s 39440 KiB
79 Időlimit túllépés 1.565s 39636 KiB
80 Időlimit túllépés 1.575s 39592 KiB
81 Időlimit túllépés 1.564s 39656 KiB
82 Időlimit túllépés 1.57s 39788 KiB
83 Időlimit túllépés 1.577s 39724 KiB
84 Időlimit túllépés 1.542s 39664 KiB
85 Időlimit túllépés 1.57s 39620 KiB
86 Időlimit túllépés 1.577s 39596 KiB
87 Időlimit túllépés 1.565s 39588 KiB
88 Időlimit túllépés 1.562s 39700 KiB
89 Időlimit túllépés 1.56s 39748 KiB
90 Időlimit túllépés 1.574s 39700 KiB
91 Időlimit túllépés 1.569s 39648 KiB
92 Időlimit túllépés 1.562s 39580 KiB
93 Időlimit túllépés 1.577s 39756 KiB
94 Időlimit túllépés 1.585s 39868 KiB
95 Időlimit túllépés 1.57s 39892 KiB
96 Időlimit túllépés 1.57s 39880 KiB
97 Időlimit túllépés 1.577s 39804 KiB
98 Időlimit túllépés 1.559s 8380 KiB
99 Időlimit túllépés 1.57s 39688 KiB
100 Időlimit túllépés 1.562s 39620 KiB
101 Futási hiba 39ms 76024 KiB
102 Időlimit túllépés 1.554s 39744 KiB
103 Futási hiba 35ms 76044 KiB
104 Futási hiba 35ms 75948 KiB
105 Futási hiba 29ms 76028 KiB
106 Futási hiba 35ms 76144 KiB
107 Futási hiba 37ms 76028 KiB
108 Futási hiba 39ms 76060 KiB
109 Futási hiba 35ms 75936 KiB
110 Futási hiba 30ms 76024 KiB
111 Futási hiba 39ms 76224 KiB
112 Futási hiba 37ms 76268 KiB
113 Futási hiba 37ms 76388 KiB
114 Időlimit túllépés 1.57s 39976 KiB
115 Időlimit túllépés 1.562s 39892 KiB
116 Időlimit túllépés 1.565s 39880 KiB
117 Időlimit túllépés 1.557s 39960 KiB
118 Időlimit túllépés 1.572s 39964 KiB