6435 2023. 11. 29 11:39:42 Ghost Legkisebb nem osztható cpp17 Időlimit túllépés 10/100 3.084s 15764 KiB
#include <iostream>
#include <vector>
#include <set>
#include <queue>
#include <stack>

using namespace std;

int main()
{
    int n, temp1, temp2, i;
    cin >> n;

    vector<int> value(n);
    for (i = 0; i < n; i++) {
        cin >> value[i];
    }

    vector<vector<int>> map(n);
    for (i = 0; i < (n - 1); i++) {
        cin >> temp1 >> temp2;
        temp1--; temp2--;
        map[temp1].push_back(temp2);
        map[temp2].push_back(temp1);
    }

    int k, goal, start, j;
    cin >> k;
    set<int> been;
    queue<int> steps;
    vector<int> last(n);
    for (i = 0; i < k; i++) {
        cin >> start >> goal;
        start--; goal--;
        last[start] = -1;

        been.clear();
        been.insert(start);
        steps.push(start);

        int node;
        while (steps.size() > 0) {
            node = steps.front();
            steps.pop();
            for (j = 0; j < map[node].size(); j++) {
                if (!been.count(map[node][j])) {
                    steps.push(map[node][j]);
                    last[map[node][j]] = node;
                }
            }
            been.insert(node);
        }

        bool correct = false;
        int out = 2;
        while (!correct) {
            node = goal;
            correct = true;
            while (node != -1) {
                if (out >= value[node]) {
                    if (out % value[node] == 0) {
                        correct = false;
                        break;
                    }
                    node = last[node];
                }
                else {
                    node = last[node];
                    continue;
                }
            }
            if (correct) {
                break;
            }
            if (++out % 2 == 0) {
                out++;
            }
        }

        cout << out << "\n";
    }
}

//9
//7 25 8 4 1000000 6 11 3 2
//5 7
//5 1
//5 6
//7 3
//1 2
//1 4
//6 8
//2 9
//3
//8 9
//3 8
//4 9
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1812 KiB
subtask2 5/5
2 Elfogadva 3ms 2060 KiB
3 Elfogadva 3ms 2272 KiB
4 Elfogadva 4ms 2492 KiB
5 Elfogadva 30ms 2676 KiB
6 Elfogadva 71ms 2892 KiB
7 Elfogadva 208ms 2988 KiB
8 Elfogadva 328ms 3272 KiB
9 Elfogadva 330ms 3228 KiB
10 Elfogadva 331ms 3444 KiB
11 Elfogadva 333ms 3652 KiB
subtask3 5/5
12 Elfogadva 3ms 3660 KiB
13 Elfogadva 3ms 3512 KiB
14 Elfogadva 4ms 3520 KiB
15 Elfogadva 28ms 3528 KiB
16 Elfogadva 68ms 3552 KiB
17 Elfogadva 202ms 3868 KiB
18 Elfogadva 326ms 3964 KiB
19 Elfogadva 328ms 4108 KiB
20 Elfogadva 326ms 4308 KiB
21 Elfogadva 324ms 4316 KiB
subtask4 0/10
22 Időlimit túllépés 3.065s 4400 KiB
23 Időlimit túllépés 3.055s 4700 KiB
24 Időlimit túllépés 3.066s 9696 KiB
25 Időlimit túllépés 3.071s 13444 KiB
26 Időlimit túllépés 3.062s 15124 KiB
27 Időlimit túllépés 3.063s 15072 KiB
subtask5 0/10
28 Időlimit túllépés 3.065s 5060 KiB
29 Időlimit túllépés 3.055s 5432 KiB
30 Időlimit túllépés 3.071s 10192 KiB
31 Időlimit túllépés 3.066s 13976 KiB
32 Időlimit túllépés 3.059s 15316 KiB
33 Időlimit túllépés 3.078s 15140 KiB
subtask6 0/10
34 Elfogadva 328ms 5028 KiB
35 Időlimit túllépés 3.071s 5224 KiB
36 Időlimit túllépés 3.049s 6760 KiB
37 Időlimit túllépés 3.065s 10316 KiB
38 Időlimit túllépés 3.051s 13968 KiB
39 Időlimit túllépés 3.065s 15216 KiB
40 Időlimit túllépés 3.073s 15196 KiB
41 Időlimit túllépés 3.078s 15328 KiB
subtask7 0/15
42 Elfogadva 326ms 5288 KiB
43 Időlimit túllépés 3.066s 5480 KiB
44 Időlimit túllépés 3.069s 7084 KiB
45 Időlimit túllépés 3.071s 10600 KiB
46 Időlimit túllépés 3.066s 14268 KiB
47 Időlimit túllépés 3.072s 15596 KiB
48 Időlimit túllépés 3.051s 15596 KiB
49 Időlimit túllépés 3.072s 15392 KiB
50 Időlimit túllépés 3.084s 15564 KiB
51 Időlimit túllépés 3.075s 13196 KiB
52 Időlimit túllépés 3.046s 13232 KiB
53 Időlimit túllépés 3.058s 13228 KiB
54 Időlimit túllépés 3.071s 13016 KiB
55 Időlimit túllépés 3.055s 13100 KiB
56 Időlimit túllépés 3.065s 13188 KiB
subtask8 0/20
57 Időlimit túllépés 3.071s 5528 KiB
58 Időlimit túllépés 3.039s 6840 KiB
59 Időlimit túllépés 3.073s 8292 KiB
60 Időlimit túllépés 3.065s 10532 KiB
61 Időlimit túllépés 3.055s 15208 KiB
62 Időlimit túllépés 3.049s 15320 KiB
63 Időlimit túllépés 3.065s 15280 KiB
64 Időlimit túllépés 3.065s 15372 KiB
65 Időlimit túllépés 3.082s 15348 KiB
66 Időlimit túllépés 3.078s 15344 KiB
subtask9 0/25
67 Időlimit túllépés 3.071s 5464 KiB
68 Időlimit túllépés 3.053s 6860 KiB
69 Időlimit túllépés 3.075s 8352 KiB
70 Időlimit túllépés 3.046s 10804 KiB
71 Időlimit túllépés 3.079s 15368 KiB
72 Időlimit túllépés 3.072s 15556 KiB
73 Időlimit túllépés 3.059s 15668 KiB
74 Időlimit túllépés 3.079s 15536 KiB
75 Időlimit túllépés 3.026s 15524 KiB
76 Időlimit túllépés 3.082s 15636 KiB
77 Időlimit túllépés 3.059s 15588 KiB
78 Időlimit túllépés 3.051s 15584 KiB
79 Időlimit túllépés 3.059s 15688 KiB
80 Időlimit túllépés 3.066s 15684 KiB
81 Időlimit túllépés 3.062s 15764 KiB
82 Időlimit túllépés 3.073s 15376 KiB
83 Időlimit túllépés 3.062s 15660 KiB