64052023-11-28 09:59:05GhostLegkisebb nem oszthatócpp17Időlimit túllépés 0/1003.101s15784 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];
                }
                else {
                    break;
                }
            }
            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.069s1024 KiB
subtask20/5
2Időlimit túllépés3.073s1300 KiB
3Időlimit túllépés3.032s1564 KiB
4Időlimit túllépés3.078s2424 KiB
5Elfogadva30ms2668 KiB
6Elfogadva71ms2888 KiB
7Elfogadva209ms3024 KiB
8Elfogadva330ms3328 KiB
9Elfogadva331ms3268 KiB
10Időlimit túllépés3.058s3524 KiB
11Időlimit túllépés3.065s3648 KiB
subtask30/5
12Időlimit túllépés3.071s3488 KiB
13Időlimit túllépés3.072s3624 KiB
14Időlimit túllépés3.076s3764 KiB
15Elfogadva28ms3752 KiB
16Elfogadva68ms3860 KiB
17Elfogadva202ms3888 KiB
18Elfogadva326ms4140 KiB
19Elfogadva328ms4048 KiB
20Időlimit túllépés3.073s3332 KiB
21Időlimit túllépés3.046s3124 KiB
subtask40/10
22Időlimit túllépés3.076s4268 KiB
23Időlimit túllépés3.071s4584 KiB
24Időlimit túllépés3.046s9284 KiB
25Időlimit túllépés3.062s12956 KiB
26Időlimit túllépés3.058s14416 KiB
27Időlimit túllépés3.065s14520 KiB
subtask50/10
28Időlimit túllépés3.035s4780 KiB
29Időlimit túllépés3.04s5216 KiB
30Időlimit túllépés3.049s9984 KiB
31Időlimit túllépés3.066s13700 KiB
32Időlimit túllépés3.071s15012 KiB
33Időlimit túllépés3.062s14952 KiB
subtask60/10
34Elfogadva330ms4728 KiB
35Időlimit túllépés3.046s4936 KiB
36Időlimit túllépés3.062s6628 KiB
37Időlimit túllépés3.073s10008 KiB
38Időlimit túllépés3.075s13700 KiB
39Időlimit túllépés3.051s14948 KiB
40Időlimit túllépés3.053s14876 KiB
41Időlimit túllépés3.073s14808 KiB
subtask70/15
42Elfogadva328ms4880 KiB
43Időlimit túllépés3.062s4920 KiB
44Időlimit túllépés3.069s6808 KiB
45Időlimit túllépés3.071s10212 KiB
46Időlimit túllépés3.059s14016 KiB
47Időlimit túllépés3.066s15224 KiB
48Időlimit túllépés3.085s15104 KiB
49Időlimit túllépés3.058s15288 KiB
50Időlimit túllépés3.026s15168 KiB
51Időlimit túllépés3.055s12604 KiB
52Időlimit túllépés3.055s12688 KiB
53Időlimit túllépés3.046s12668 KiB
54Időlimit túllépés3.066s12768 KiB
55Időlimit túllépés3.063s12756 KiB
56Időlimit túllépés3.071s12800 KiB
subtask80/20
57Időlimit túllépés3.062s5356 KiB
58Időlimit túllépés3.071s6792 KiB
59Időlimit túllépés3.055s8144 KiB
60Időlimit túllépés3.066s10324 KiB
61Időlimit túllépés3.066s15000 KiB
62Időlimit túllépés3.059s15096 KiB
63Időlimit túllépés3.068s15140 KiB
64Időlimit túllépés3.062s15324 KiB
65Időlimit túllépés3.058s15412 KiB
66Időlimit túllépés3.039s15604 KiB
subtask90/25
67Időlimit túllépés3.071s5592 KiB
68Időlimit túllépés3.069s6968 KiB
69Időlimit túllépés3.062s8332 KiB
70Időlimit túllépés3.069s10964 KiB
71Időlimit túllépés3.101s15348 KiB
72Időlimit túllépés3.075s15392 KiB
73Időlimit túllépés3.101s15588 KiB
74Időlimit túllépés3.078s15532 KiB
75Időlimit túllépés3.082s15720 KiB
76Időlimit túllépés3.075s15396 KiB
77Időlimit túllépés3.055s15584 KiB
78Időlimit túllépés3.048s15456 KiB
79Időlimit túllépés3.042s15588 KiB
80Időlimit túllépés3.049s15696 KiB
81Időlimit túllépés3.033s15784 KiB
82Időlimit túllépés3.051s15284 KiB
83Időlimit túllépés3.055s15524 KiB