64022023-11-28 09:48:37GhostLegkisebb nem oszthatócpp17Időlimit túllépés 10/1003.099s15564 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;
            while (node != -1) {
                if (out % value[node] == 0 || (out > 2 && out % 2 == 0)) {
                    correct = false;
                    break;
                }
                correct = true;
                node = last[node];
            }
            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
1Elfogadva3ms1812 KiB
subtask25/5
2Elfogadva3ms2004 KiB
3Elfogadva3ms2252 KiB
4Elfogadva4ms2436 KiB
5Elfogadva30ms2792 KiB
6Elfogadva70ms3024 KiB
7Elfogadva208ms3420 KiB
8Elfogadva328ms3496 KiB
9Elfogadva328ms3708 KiB
10Elfogadva330ms3748 KiB
11Elfogadva331ms4024 KiB
subtask35/5
12Elfogadva3ms3884 KiB
13Elfogadva3ms3996 KiB
14Elfogadva4ms4116 KiB
15Elfogadva28ms4036 KiB
16Elfogadva67ms4056 KiB
17Elfogadva202ms4100 KiB
18Elfogadva326ms4136 KiB
19Elfogadva326ms4148 KiB
20Elfogadva326ms4148 KiB
21Elfogadva324ms4300 KiB
subtask40/10
22Időlimit túllépés3.062s4676 KiB
23Időlimit túllépés3.059s4888 KiB
24Időlimit túllépés3.082s9680 KiB
25Időlimit túllépés3.073s13152 KiB
26Időlimit túllépés3.065s14500 KiB
27Időlimit túllépés3.046s14500 KiB
subtask50/10
28Időlimit túllépés3.073s4612 KiB
29Időlimit túllépés3.065s4856 KiB
30Időlimit túllépés3.059s9696 KiB
31Időlimit túllépés3.082s13376 KiB
32Időlimit túllépés3.055s14892 KiB
33Időlimit túllépés3.043s14788 KiB
subtask60/10
34Elfogadva328ms4536 KiB
35Időlimit túllépés3.049s4852 KiB
36Időlimit túllépés3.073s6460 KiB
37Időlimit túllépés3.062s9716 KiB
38Időlimit túllépés3.062s13504 KiB
39Időlimit túllépés3.062s14672 KiB
40Időlimit túllépés3.062s14568 KiB
41Időlimit túllépés3.085s14860 KiB
subtask70/15
42Elfogadva324ms4996 KiB
43Időlimit túllépés3.065s5128 KiB
44Időlimit túllépés3.056s6948 KiB
45Időlimit túllépés3.049s10336 KiB
46Időlimit túllépés3.053s14044 KiB
47Időlimit túllépés3.073s15392 KiB
48Időlimit túllépés3.062s15264 KiB
49Időlimit túllépés3.062s15372 KiB
50Időlimit túllépés3.065s15252 KiB
51Időlimit túllépés3.065s12744 KiB
52Időlimit túllépés3.065s12784 KiB
53Időlimit túllépés3.069s12812 KiB
54Időlimit túllépés3.075s12872 KiB
55Időlimit túllépés3.066s12848 KiB
56Időlimit túllépés3.085s12896 KiB
subtask80/20
57Időlimit túllépés3.078s5268 KiB
58Időlimit túllépés3.062s6592 KiB
59Időlimit túllépés3.042s8148 KiB
60Időlimit túllépés3.078s10316 KiB
61Időlimit túllépés3.065s14936 KiB
62Időlimit túllépés3.073s15088 KiB
63Időlimit túllépés3.051s15128 KiB
64Időlimit túllépés3.055s15164 KiB
65Időlimit túllépés3.049s15104 KiB
66Időlimit túllépés3.062s15100 KiB
subtask90/25
67Időlimit túllépés3.062s5176 KiB
68Időlimit túllépés3.099s6648 KiB
69Időlimit túllépés3.061s8148 KiB
70Időlimit túllépés3.069s10560 KiB
71Időlimit túllépés3.062s15040 KiB
72Időlimit túllépés3.069s15396 KiB
73Időlimit túllépés3.062s15428 KiB
74Időlimit túllépés3.082s15480 KiB
75Időlimit túllépés3.053s15472 KiB
76Időlimit túllépés3.069s15288 KiB
77Időlimit túllépés3.065s15172 KiB
78Időlimit túllépés3.053s15364 KiB
79Időlimit túllépés3.065s15288 KiB
80Időlimit túllépés3.068s15532 KiB
81Időlimit túllépés3.053s15564 KiB
82Időlimit túllépés3.042s15092 KiB
83Időlimit túllépés3.062s15492 KiB