40812023-03-13 08:53:42bzsofiaA lehető legkevesebb átszállás (50 pont)cpp11Részben helyes 49/5010ms7208 KiB
#include <iostream>
#include <vector>

using namespace std;

long long n, m, i, j, a, b, maxi;

int main()
{
    cin >> m >> n;
    vector <long long> x(n + 1);
    vector <long long> honnan(n + 1);
    vector <long long> v;

    for (i = 1; i <= m; ++i)
    {
        cin >> a >> b;
        if (x[a] <= b)
        {
            x[a] = b;
            honnan[a] = i;
        }
    }

    i = 1;
    while (x[i]<n)
    {
        v.push_back(honnan[i]);
        maxi = i;
        
        for (j = i+1; j <= x[i]; ++j)
        {
            if (x[j] > x[maxi])
            {
                maxi = j;
            }
        }
        
        if (x[maxi] <= x[i])
        {
            cout << "-1";
            return 0;
        }

        i = maxi;
    }

    v.push_back(honnan[maxi]);

    cout << v.size() - 1 << "\n";
    for (auto& e : v) cout << e << " ";

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base49/50
1Elfogadva0/03ms1808 KiB
2Elfogadva0/09ms5048 KiB
3Elfogadva1/13ms2212 KiB
4Elfogadva1/13ms2424 KiB
5Részben helyes1/23ms2636 KiB
6Elfogadva2/23ms2728 KiB
7Elfogadva2/23ms3076 KiB
8Elfogadva2/23ms3024 KiB
9Elfogadva2/24ms3208 KiB
10Elfogadva2/24ms3564 KiB
11Elfogadva2/26ms4384 KiB
12Elfogadva2/26ms4496 KiB
13Elfogadva2/23ms3544 KiB
14Elfogadva2/24ms4388 KiB
15Elfogadva2/24ms4636 KiB
16Elfogadva2/26ms4716 KiB
17Elfogadva2/28ms5752 KiB
18Elfogadva2/28ms6008 KiB
19Elfogadva2/28ms6676 KiB
20Elfogadva2/29ms6828 KiB
21Elfogadva2/29ms6912 KiB
22Elfogadva2/210ms6912 KiB
23Elfogadva2/29ms5872 KiB
24Elfogadva2/29ms6568 KiB
25Elfogadva2/29ms6924 KiB
26Elfogadva2/29ms6948 KiB
27Elfogadva2/29ms7208 KiB
28Elfogadva2/29ms7124 KiB