247782026-02-15 01:52:40999A lehető legkevesebb átszállás (50 pont)cpp17Hibás válasz 2/504ms2004 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()<<endl;
    for(int i : ans)cout<<i+1<<' ';
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base2/50
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/04ms1844 KiB
3Elfogadva1/11ms316 KiB
4Elfogadva1/11ms316 KiB
5Hibás válasz0/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/21ms316 KiB
8Hibás válasz0/22ms316 KiB
9Hibás válasz0/22ms564 KiB
10Hibás válasz0/22ms564 KiB
11Hibás válasz0/23ms820 KiB
12Hibás válasz0/23ms1076 KiB
13Hibás válasz0/22ms564 KiB
14Hibás válasz0/22ms820 KiB
15Hibás válasz0/23ms1076 KiB
16Hibás válasz0/23ms1076 KiB
17Hibás válasz0/24ms1588 KiB
18Hibás válasz0/24ms1796 KiB
19Hibás válasz0/24ms1812 KiB
20Hibás válasz0/24ms1844 KiB
21Hibás válasz0/24ms1844 KiB
22Hibás válasz0/24ms1852 KiB
23Hibás válasz0/24ms1532 KiB
24Hibás válasz0/24ms1496 KiB
25Hibás válasz0/24ms1856 KiB
26Hibás válasz0/24ms1924 KiB
27Hibás válasz0/24ms1888 KiB
28Hibás válasz0/24ms2004 KiB