64062023-11-28 10:02:05GhostLegkisebb nem oszthatócpp17Hibás válasz 0/1003.084s15784 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
1Hibás válasz3ms1944 KiB
subtask20/5
2Hibás válasz3ms2112 KiB
3Hibás válasz3ms2332 KiB
4Hibás válasz6ms2384 KiB
5Hibás válasz731ms2728 KiB
6Hibás válasz842ms2828 KiB
7Hibás válasz906ms3056 KiB
8Hibás válasz1.083s3156 KiB
9Hibás válasz1.024s3408 KiB
10Hibás válasz330ms3620 KiB
11Hibás válasz328ms3888 KiB
subtask30/5
12Hibás válasz3ms3680 KiB
13Hibás válasz3ms3684 KiB
14Hibás válasz4ms3700 KiB
15Hibás válasz814ms3924 KiB
16Hibás válasz778ms4260 KiB
17Hibás válasz939ms4172 KiB
18Hibás válasz1.046s4116 KiB
19Hibás válasz1.027s4372 KiB
20Hibás válasz326ms4380 KiB
21Hibás válasz326ms4332 KiB
subtask40/10
22Időlimit túllépés3.073s4604 KiB
23Időlimit túllépés3.046s4708 KiB
24Időlimit túllépés3.066s9508 KiB
25Időlimit túllépés3.062s13132 KiB
26Időlimit túllépés3.059s14384 KiB
27Időlimit túllépés3.053s14452 KiB
subtask50/10
28Időlimit túllépés3.078s4596 KiB
29Időlimit túllépés3.035s4964 KiB
30Időlimit túllépés3.062s9900 KiB
31Időlimit túllépés3.049s13700 KiB
32Időlimit túllépés3.066s14804 KiB
33Időlimit túllépés3.068s14988 KiB
subtask60/10
34Hibás válasz330ms5084 KiB
35Időlimit túllépés3.062s5056 KiB
36Időlimit túllépés3.073s6576 KiB
37Időlimit túllépés3.049s9944 KiB
38Időlimit túllépés3.073s13796 KiB
39Időlimit túllépés3.079s14964 KiB
40Időlimit túllépés3.062s15120 KiB
41Időlimit túllépés3.078s15076 KiB
subtask70/15
42Hibás válasz328ms5048 KiB
43Időlimit túllépés3.026s5140 KiB
44Időlimit túllépés3.039s6824 KiB
45Időlimit túllépés3.069s10256 KiB
46Időlimit túllépés3.072s14132 KiB
47Időlimit túllépés3.084s15292 KiB
48Időlimit túllépés3.075s15252 KiB
49Időlimit túllépés3.075s15212 KiB
50Időlimit túllépés3.073s15372 KiB
51Időlimit túllépés3.058s12688 KiB
52Időlimit túllépés3.072s12784 KiB
53Időlimit túllépés3.062s12804 KiB
54Időlimit túllépés3.058s12776 KiB
55Időlimit túllépés3.079s12704 KiB
56Időlimit túllépés3.062s12956 KiB
subtask80/20
57Időlimit túllépés3.073s5376 KiB
58Időlimit túllépés3.078s6640 KiB
59Időlimit túllépés3.082s8156 KiB
60Időlimit túllépés3.069s10452 KiB
61Időlimit túllépés3.059s14848 KiB
62Időlimit túllépés3.079s14960 KiB
63Időlimit túllépés3.079s15012 KiB
64Időlimit túllépés3.066s15060 KiB
65Időlimit túllépés3.072s15032 KiB
66Időlimit túllépés3.071s15188 KiB
subtask90/25
67Időlimit túllépés3.049s5236 KiB
68Időlimit túllépés3.075s6640 KiB
69Időlimit túllépés3.046s7968 KiB
70Időlimit túllépés3.078s10528 KiB
71Időlimit túllépés3.066s15248 KiB
72Időlimit túllépés3.082s15340 KiB
73Időlimit túllépés3.078s15392 KiB
74Időlimit túllépés3.059s15336 KiB
75Időlimit túllépés3.062s15276 KiB
76Időlimit túllépés3.069s15416 KiB
77Időlimit túllépés3.071s15700 KiB
78Időlimit túllépés3.075s15488 KiB
79Időlimit túllépés3.082s15532 KiB
80Időlimit túllépés3.071s15784 KiB
81Időlimit túllépés3.058s15608 KiB
82Időlimit túllépés3.073s15208 KiB
83Időlimit túllépés3.075s15476 KiB