64102023-11-28 10:11:02GhostLegkisebb nem oszthatócpp17Időlimit túllépés 10/1003.099s15700 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1816 KiB
subtask25/5
2Elfogadva3ms2044 KiB
3Elfogadva3ms2256 KiB
4Elfogadva6ms2468 KiB
5Elfogadva29ms2552 KiB
6Elfogadva71ms2564 KiB
7Elfogadva208ms2840 KiB
8Elfogadva328ms3364 KiB
9Elfogadva328ms3320 KiB
10Elfogadva330ms3268 KiB
11Elfogadva333ms3556 KiB
subtask35/5
12Elfogadva3ms3364 KiB
13Elfogadva3ms3620 KiB
14Elfogadva4ms3804 KiB
15Elfogadva28ms3940 KiB
16Elfogadva68ms4060 KiB
17Elfogadva202ms4088 KiB
18Elfogadva324ms4300 KiB
19Elfogadva326ms4384 KiB
20Elfogadva324ms4384 KiB
21Elfogadva323ms4356 KiB
subtask40/10
22Időlimit túllépés3.059s4524 KiB
23Időlimit túllépés3.066s5016 KiB
24Időlimit túllépés3.065s9684 KiB
25Időlimit túllépés3.055s13216 KiB
26Időlimit túllépés3.082s14488 KiB
27Időlimit túllépés3.062s14476 KiB
subtask50/10
28Időlimit túllépés3.078s4536 KiB
29Időlimit túllépés3.046s4796 KiB
30Időlimit túllépés3.073s9988 KiB
31Időlimit túllépés3.065s13876 KiB
32Időlimit túllépés3.062s15108 KiB
33Időlimit túllépés3.082s15124 KiB
subtask60/10
34Elfogadva328ms5236 KiB
35Időlimit túllépés3.065s5396 KiB
36Időlimit túllépés3.069s7104 KiB
37Időlimit túllépés3.069s10452 KiB
38Időlimit túllépés3.065s14176 KiB
39Időlimit túllépés3.063s15600 KiB
40Időlimit túllépés3.099s15448 KiB
41Időlimit túllépés3.099s15244 KiB
subtask70/15
42Elfogadva326ms5264 KiB
43Időlimit túllépés3.075s5456 KiB
44Időlimit túllépés3.062s7176 KiB
45Időlimit túllépés3.066s10568 KiB
46Időlimit túllépés3.086s14492 KiB
47Időlimit túllépés3.066s15592 KiB
48Időlimit túllépés3.062s15668 KiB
49Időlimit túllépés3.075s15692 KiB
50Időlimit túllépés3.066s15452 KiB
51Időlimit túllépés3.062s12968 KiB
52Időlimit túllépés3.059s13112 KiB
53Időlimit túllépés3.046s13104 KiB
54Időlimit túllépés3.051s13028 KiB
55Időlimit túllépés3.078s13116 KiB
56Időlimit túllépés3.062s13100 KiB
subtask80/20
57Időlimit túllépés3.069s5512 KiB
58Időlimit túllépés3.071s6808 KiB
59Időlimit túllépés3.062s8156 KiB
60Időlimit túllépés3.062s10520 KiB
61Időlimit túllépés3.078s15128 KiB
62Időlimit túllépés3.082s15364 KiB
63Időlimit túllépés3.073s15348 KiB
64Időlimit túllépés3.059s15348 KiB
65Időlimit túllépés3.059s15324 KiB
66Időlimit túllépés3.079s15396 KiB
subtask90/25
67Időlimit túllépés3.066s5416 KiB
68Időlimit túllépés3.055s6808 KiB
69Időlimit túllépés3.062s8348 KiB
70Időlimit túllépés3.055s10788 KiB
71Időlimit túllépés3.075s15392 KiB
72Időlimit túllépés3.032s15648 KiB
73Időlimit túllépés3.063s15604 KiB
74Időlimit túllépés3.082s15564 KiB
75Időlimit túllépés3.055s15464 KiB
76Időlimit túllépés3.066s15576 KiB
77Időlimit túllépés3.055s15516 KiB
78Időlimit túllépés3.065s15684 KiB
79Időlimit túllépés3.069s15504 KiB
80Időlimit túllépés3.065s15700 KiB
81Időlimit túllépés3.046s15664 KiB
82Időlimit túllépés3.071s15328 KiB
83Időlimit túllépés3.053s15632 KiB