64042023-11-28 09:55:36GhostLegkisebb nem oszthatócpp17Időlimit túllépés 0/1003.086s15964 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]) {
                    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
1Időlimit túllépés3.061s1776 KiB
subtask20/5
2Időlimit túllépés3.061s1968 KiB
3Időlimit túllépés3.045s2232 KiB
4Időlimit túllépés3.065s2712 KiB
5Elfogadva32ms2728 KiB
6Elfogadva72ms2916 KiB
7Elfogadva215ms3052 KiB
8Elfogadva337ms3216 KiB
9Elfogadva340ms3392 KiB
10Időlimit túllépés3.066s2556 KiB
11Időlimit túllépés3.062s3304 KiB
subtask30/5
12Időlimit túllépés3.046s3332 KiB
13Időlimit túllépés3.046s2728 KiB
14Időlimit túllépés3.053s2944 KiB
15Elfogadva29ms3696 KiB
16Elfogadva70ms3840 KiB
17Elfogadva209ms3972 KiB
18Elfogadva335ms4264 KiB
19Elfogadva335ms4264 KiB
20Időlimit túllépés3.066s4452 KiB
21Időlimit túllépés3.053s3528 KiB
subtask40/10
22Időlimit túllépés3.059s4480 KiB
23Időlimit túllépés3.065s5056 KiB
24Időlimit túllépés3.01s9684 KiB
25Időlimit túllépés3.066s13252 KiB
26Időlimit túllépés3.068s14832 KiB
27Időlimit túllépés3.079s15060 KiB
subtask50/10
28Időlimit túllépés3.078s5464 KiB
29Időlimit túllépés3.046s5580 KiB
30Időlimit túllépés3.026s10360 KiB
31Időlimit túllépés3.055s13884 KiB
32Időlimit túllépés3.082s15348 KiB
33Időlimit túllépés3.062s15204 KiB
subtask60/10
34Elfogadva338ms5096 KiB
35Időlimit túllépés3.055s5544 KiB
36Időlimit túllépés3.059s7120 KiB
37Időlimit túllépés3.065s10448 KiB
38Időlimit túllépés3.086s14236 KiB
39Időlimit túllépés3.062s15404 KiB
40Időlimit túllépés3.063s15272 KiB
41Időlimit túllépés3.046s15296 KiB
subtask70/15
42Elfogadva335ms5292 KiB
43Időlimit túllépés3.033s5420 KiB
44Időlimit túllépés3.049s7160 KiB
45Időlimit túllépés3.071s10560 KiB
46Időlimit túllépés3.071s14232 KiB
47Időlimit túllépés3.059s15576 KiB
48Időlimit túllépés3.058s15640 KiB
49Időlimit túllépés3.049s15568 KiB
50Időlimit túllépés3.063s15672 KiB
51Időlimit túllépés3.075s13008 KiB
52Időlimit túllépés3.063s12948 KiB
53Időlimit túllépés3.062s13012 KiB
54Időlimit túllépés3.062s13016 KiB
55Időlimit túllépés3.055s13040 KiB
56Időlimit túllépés3.062s13076 KiB
subtask80/20
57Időlimit túllépés3.038s5508 KiB
58Időlimit túllépés3.071s6912 KiB
59Időlimit túllépés3.051s8208 KiB
60Időlimit túllépés3.039s10580 KiB
61Időlimit túllépés3.071s15196 KiB
62Időlimit túllépés3.069s15380 KiB
63Időlimit túllépés3.062s15288 KiB
64Időlimit túllépés3.059s15316 KiB
65Időlimit túllépés3.043s15332 KiB
66Időlimit túllépés3.082s15412 KiB
subtask90/25
67Időlimit túllépés3.059s5532 KiB
68Időlimit túllépés3.053s6880 KiB
69Időlimit túllépés3.049s8308 KiB
70Időlimit túllépés3.053s10692 KiB
71Időlimit túllépés3.082s15396 KiB
72Időlimit túllépés3.058s15600 KiB
73Időlimit túllépés3.065s15580 KiB
74Időlimit túllépés3.053s15700 KiB
75Időlimit túllépés3.053s15448 KiB
76Időlimit túllépés3.073s15436 KiB
77Időlimit túllépés3.049s15664 KiB
78Időlimit túllépés3.058s15412 KiB
79Időlimit túllépés3.066s15384 KiB
80Időlimit túllépés3.071s15964 KiB
81Időlimit túllépés3.062s15740 KiB
82Időlimit túllépés3.066s15356 KiB
83Időlimit túllépés3.066s15628 KiB