64072023-11-28 10:06:40GhostLegkisebb nem oszthatócpp17Hibás válasz 0/1003.101s15720 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 {
                    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
1Hibás válasz3ms1812 KiB
subtask20/5
2Elfogadva3ms2004 KiB
3Hibás válasz4ms2244 KiB
4Hibás válasz6ms2248 KiB
5Hibás válasz1.264s2248 KiB
6Hibás válasz1.975s2260 KiB
7Időlimit túllépés3.078s1864 KiB
8Időlimit túllépés3.053s2876 KiB
9Időlimit túllépés3.017s2996 KiB
10Hibás válasz331ms3284 KiB
11Hibás válasz333ms3240 KiB
subtask30/5
12Hibás válasz3ms3220 KiB
13Hibás válasz3ms3480 KiB
14Hibás válasz4ms3656 KiB
15Hibás válasz971ms3756 KiB
16Hibás válasz1.103s3984 KiB
17Hibás válasz1.238s4004 KiB
18Hibás válasz1.299s4044 KiB
19Hibás válasz894ms4176 KiB
20Hibás válasz326ms4240 KiB
21Hibás válasz324ms4208 KiB
subtask40/10
22Időlimit túllépés3.078s4392 KiB
23Időlimit túllépés3.059s4892 KiB
24Időlimit túllépés3.078s9760 KiB
25Időlimit túllépés3.03s13584 KiB
26Időlimit túllépés3.082s14736 KiB
27Időlimit túllépés3.071s14900 KiB
subtask50/10
28Időlimit túllépés3.062s4932 KiB
29Időlimit túllépés3.062s5060 KiB
30Időlimit túllépés3.069s9956 KiB
31Időlimit túllépés3.072s13872 KiB
32Időlimit túllépés3.066s15060 KiB
33Időlimit túllépés3.072s14944 KiB
subtask60/10
34Hibás válasz333ms4764 KiB
35Időlimit túllépés3.062s5092 KiB
36Időlimit túllépés3.076s6736 KiB
37Időlimit túllépés3.062s10204 KiB
38Időlimit túllépés3.065s13848 KiB
39Időlimit túllépés3.063s15068 KiB
40Időlimit túllépés3.059s15156 KiB
41Időlimit túllépés3.059s15048 KiB
subtask70/15
42Hibás válasz328ms5180 KiB
43Időlimit túllépés3.078s5252 KiB
44Időlimit túllépés3.062s6852 KiB
45Időlimit túllépés3.051s10360 KiB
46Időlimit túllépés3.062s14276 KiB
47Időlimit túllépés3.078s15544 KiB
48Időlimit túllépés3.059s15344 KiB
49Időlimit túllépés3.055s15360 KiB
50Időlimit túllépés3.058s15360 KiB
51Időlimit túllépés3.043s12804 KiB
52Időlimit túllépés3.066s12816 KiB
53Időlimit túllépés3.069s13080 KiB
54Időlimit túllépés3.058s12812 KiB
55Időlimit túllépés3.058s12740 KiB
56Időlimit túllépés3.075s12912 KiB
subtask80/20
57Időlimit túllépés3.062s5292 KiB
58Időlimit túllépés3.055s6728 KiB
59Időlimit túllépés3.046s8148 KiB
60Időlimit túllépés3.065s10540 KiB
61Időlimit túllépés3.084s15192 KiB
62Időlimit túllépés3.058s15288 KiB
63Időlimit túllépés3.059s15256 KiB
64Időlimit túllépés3.101s15324 KiB
65Időlimit túllépés3.062s15256 KiB
66Időlimit túllépés3.069s15320 KiB
subtask90/25
67Időlimit túllépés3.065s5460 KiB
68Időlimit túllépés3.073s6888 KiB
69Időlimit túllépés3.062s8344 KiB
70Időlimit túllépés3.065s10732 KiB
71Időlimit túllépés3.058s15320 KiB
72Időlimit túllépés3.073s15612 KiB
73Időlimit túllépés3.065s15700 KiB
74Időlimit túllépés3.065s15640 KiB
75Időlimit túllépés3.059s15516 KiB
76Időlimit túllépés3.071s15520 KiB
77Időlimit túllépés3.073s15692 KiB
78Időlimit túllépés3.062s15584 KiB
79Időlimit túllépés3.073s15588 KiB
80Időlimit túllépés3.068s15720 KiB
81Időlimit túllépés3.068s15652 KiB
82Időlimit túllépés3.059s15264 KiB
83Időlimit túllépés3.082s15512 KiB