247792026-02-15 01:53:25999A lehető legkevesebb átszállás (50 pont)cpp17Elfogadva 50/504ms1992 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
/*
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
*/
using namespace std;
#define int long long

int strtonum(string s){
    int x=0;
    while(s[0]=='0'&&s.size()>1)s=s.substr(1,s.size()-1);
    for(int i = 0; i<=s.size()-1;i++){
        x+=s[i]-'0';
        if(i<s.size()-1)x*=2;
    }
    return x;
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;cin>>n>>m;
    vector<int> v(m+1),fr(m+1);
    for(int i=0;i<=m;i++)v[i]=i;
    for(int i = 0;i<n;i++){
        int a,b;cin>>a>>b;
        if(v[a]<b){
            v[a]=b;
            fr[a]=i;
        }
    }
    bool imp=false;
    for(int i = 1;i<=m;i++){
        if(v[i]<v[i-1]){
            v[i]=v[i-1];
            fr[i]=fr[i-1];
        }
        if(v[i]==i&&i<m){
            cout<<-1;return 0;
        }
    }
    vector<int> ans;
    int ind=1;
    while(ind!=m){
        ans.push_back(fr[ind]);
        ind=v[ind];
    }
    cout<<ans.size()-1<<endl;
    for(int i : ans)cout<<i+1<<' ';
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/04ms1844 KiB
3Elfogadva1/11ms500 KiB
4Elfogadva1/11ms316 KiB
5Elfogadva2/21ms528 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/22ms316 KiB
8Elfogadva2/21ms508 KiB
9Elfogadva2/22ms316 KiB
10Elfogadva2/22ms564 KiB
11Elfogadva2/22ms820 KiB
12Elfogadva2/23ms1164 KiB
13Elfogadva2/22ms924 KiB
14Elfogadva2/22ms820 KiB
15Elfogadva2/22ms1092 KiB
16Elfogadva2/23ms1260 KiB
17Elfogadva2/24ms1780 KiB
18Elfogadva2/24ms1792 KiB
19Elfogadva2/24ms1852 KiB
20Elfogadva2/24ms1844 KiB
21Elfogadva2/24ms1844 KiB
22Elfogadva2/24ms1844 KiB
23Elfogadva2/24ms1332 KiB
24Elfogadva2/24ms1588 KiB
25Elfogadva2/24ms1844 KiB
26Elfogadva2/24ms1860 KiB
27Elfogadva2/24ms1992 KiB
28Elfogadva2/24ms1844 KiB