6410 2023. 11. 28 10:11:02 Ghost Legkisebb nem osztható cpp17 Időlimit túllépés 10/100 3.099s 15700 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 || (out > 2 && out % 2 == 0)) {
                        correct = false;
                        break;
                    }
                    node = last[node];
                }
                else {
                    node = last[node];
                    continue;
                }
            }
            if (correct) {
                break;
            }
            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 1816 KiB
subtask2 5/5
2 Elfogadva 3ms 2044 KiB
3 Elfogadva 3ms 2256 KiB
4 Elfogadva 6ms 2468 KiB
5 Elfogadva 29ms 2552 KiB
6 Elfogadva 71ms 2564 KiB
7 Elfogadva 208ms 2840 KiB
8 Elfogadva 328ms 3364 KiB
9 Elfogadva 328ms 3320 KiB
10 Elfogadva 330ms 3268 KiB
11 Elfogadva 333ms 3556 KiB
subtask3 5/5
12 Elfogadva 3ms 3364 KiB
13 Elfogadva 3ms 3620 KiB
14 Elfogadva 4ms 3804 KiB
15 Elfogadva 28ms 3940 KiB
16 Elfogadva 68ms 4060 KiB
17 Elfogadva 202ms 4088 KiB
18 Elfogadva 324ms 4300 KiB
19 Elfogadva 326ms 4384 KiB
20 Elfogadva 324ms 4384 KiB
21 Elfogadva 323ms 4356 KiB
subtask4 0/10
22 Időlimit túllépés 3.059s 4524 KiB
23 Időlimit túllépés 3.066s 5016 KiB
24 Időlimit túllépés 3.065s 9684 KiB
25 Időlimit túllépés 3.055s 13216 KiB
26 Időlimit túllépés 3.082s 14488 KiB
27 Időlimit túllépés 3.062s 14476 KiB
subtask5 0/10
28 Időlimit túllépés 3.078s 4536 KiB
29 Időlimit túllépés 3.046s 4796 KiB
30 Időlimit túllépés 3.073s 9988 KiB
31 Időlimit túllépés 3.065s 13876 KiB
32 Időlimit túllépés 3.062s 15108 KiB
33 Időlimit túllépés 3.082s 15124 KiB
subtask6 0/10
34 Elfogadva 328ms 5236 KiB
35 Időlimit túllépés 3.065s 5396 KiB
36 Időlimit túllépés 3.069s 7104 KiB
37 Időlimit túllépés 3.069s 10452 KiB
38 Időlimit túllépés 3.065s 14176 KiB
39 Időlimit túllépés 3.063s 15600 KiB
40 Időlimit túllépés 3.099s 15448 KiB
41 Időlimit túllépés 3.099s 15244 KiB
subtask7 0/15
42 Elfogadva 326ms 5264 KiB
43 Időlimit túllépés 3.075s 5456 KiB
44 Időlimit túllépés 3.062s 7176 KiB
45 Időlimit túllépés 3.066s 10568 KiB
46 Időlimit túllépés 3.086s 14492 KiB
47 Időlimit túllépés 3.066s 15592 KiB
48 Időlimit túllépés 3.062s 15668 KiB
49 Időlimit túllépés 3.075s 15692 KiB
50 Időlimit túllépés 3.066s 15452 KiB
51 Időlimit túllépés 3.062s 12968 KiB
52 Időlimit túllépés 3.059s 13112 KiB
53 Időlimit túllépés 3.046s 13104 KiB
54 Időlimit túllépés 3.051s 13028 KiB
55 Időlimit túllépés 3.078s 13116 KiB
56 Időlimit túllépés 3.062s 13100 KiB
subtask8 0/20
57 Időlimit túllépés 3.069s 5512 KiB
58 Időlimit túllépés 3.071s 6808 KiB
59 Időlimit túllépés 3.062s 8156 KiB
60 Időlimit túllépés 3.062s 10520 KiB
61 Időlimit túllépés 3.078s 15128 KiB
62 Időlimit túllépés 3.082s 15364 KiB
63 Időlimit túllépés 3.073s 15348 KiB
64 Időlimit túllépés 3.059s 15348 KiB
65 Időlimit túllépés 3.059s 15324 KiB
66 Időlimit túllépés 3.079s 15396 KiB
subtask9 0/25
67 Időlimit túllépés 3.066s 5416 KiB
68 Időlimit túllépés 3.055s 6808 KiB
69 Időlimit túllépés 3.062s 8348 KiB
70 Időlimit túllépés 3.055s 10788 KiB
71 Időlimit túllépés 3.075s 15392 KiB
72 Időlimit túllépés 3.032s 15648 KiB
73 Időlimit túllépés 3.063s 15604 KiB
74 Időlimit túllépés 3.082s 15564 KiB
75 Időlimit túllépés 3.055s 15464 KiB
76 Időlimit túllépés 3.066s 15576 KiB
77 Időlimit túllépés 3.055s 15516 KiB
78 Időlimit túllépés 3.065s 15684 KiB
79 Időlimit túllépés 3.069s 15504 KiB
80 Időlimit túllépés 3.065s 15700 KiB
81 Időlimit túllépés 3.046s 15664 KiB
82 Időlimit túllépés 3.071s 15328 KiB
83 Időlimit túllépés 3.053s 15632 KiB