76412024-01-10 10:21:19CsongiA lehető legkevesebb átszállás (50 pont)cpp14Időlimit túllépés 15/50301ms62608 KiB
#include <iostream>
#include <bits/stdc++.h>
#include <vector>

using namespace std;

pair<int, int> elerhetolncsucs(int v, vector<vector<int>> allomasok, vector<pair<int, int>> vonat)
{
    int legn = 0;
    int ind = 0;
    for (int i = 0; i < allomasok[v].size(); i++)
    {
        if (vonat[allomasok[v][i]].second > ind)
        {
            legn = allomasok[v][i];
            ind = vonat[allomasok[v][i]].second;
        }
    }
    pair<int, int> ki;
    ki.first = legn; //villamos 0-n
    ki.second = ind; //csucs 1-m
    return ki;
}

int main()
{
    int n, m;
    cin >> n >> m;
    //vector<int> vonatok(n);
    vector<pair<int, int>> vonat(n);
    vector<vector<int>> allomasok(m+1);
    bool egyes = false, utolso = false;
    for (int i = 0; i < n; i++)
    {
        int a, b;
        cin >> a >> b;
        //vonatok[i] = b - a + 1; //merete a vonatnak
        vonat[i].first = a;
        vonat[i].second = b;
        if (a == 1)
            egyes = true;
        if (b == m)
            utolso = true;
        //cout << a << " " << b << endl;
        for (int j = a; j <= b; j++)
        {
            allomasok[j].push_back(i);
        }
    }
    if (!egyes || !utolso)
    {
        cout << "-1";
        exit(0);
    }
    int most = 1;
    vector<int> bejaras(0);
    while (most < m)
    {
        pair<int, int> itt = elerhetolncsucs(most, allomasok, vonat);
        most = itt.second;
        bejaras.push_back(itt.first);
        //cout << most << " " << itt.first;
    }
    cout << bejaras.size() - 1 << endl;
    for (int i = 0; i < bejaras.size(); i++)
    {
        cout << bejaras[i] + 1 << " ";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base15/50
1Elfogadva0/03ms1812 KiB
2Időlimit túllépés0/0301ms32596 KiB
3Elfogadva1/13ms2308 KiB
4Időlimit túllépés0/1300ms10132 KiB
5Elfogadva2/23ms2516 KiB
6Elfogadva2/23ms2640 KiB
7Elfogadva2/218ms8324 KiB
8Elfogadva2/217ms10812 KiB
9Elfogadva2/228ms13396 KiB
10Elfogadva2/276ms18940 KiB
11Időlimit túllépés0/2268ms14780 KiB
12Időlimit túllépés0/2247ms17992 KiB
13Elfogadva2/2108ms10944 KiB
14Időlimit túllépés0/2244ms10516 KiB
15Időlimit túllépés0/2275ms13844 KiB
16Időlimit túllépés0/2275ms18572 KiB
17Időlimit túllépés0/2268ms26724 KiB
18Időlimit túllépés0/2256ms28656 KiB
19Időlimit túllépés0/2268ms30828 KiB
20Időlimit túllépés0/2264ms32224 KiB
21Futási hiba0/272ms62608 KiB
22Futási hiba0/271ms62372 KiB
23Futási hiba0/2123ms62340 KiB
24Futási hiba0/2118ms62316 KiB
25Futási hiba0/2137ms62292 KiB
26Futási hiba0/2181ms62288 KiB
27Futási hiba0/2156ms62280 KiB
28Futási hiba0/2151ms62232 KiB