247772026-02-15 01:52:12999A lehető legkevesebb átszállás (50 pont)cpp17Wrong answer 2/504ms2200 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<<' ';
}

SubtaskSumTestVerdictTimeMemory
base2/50
1Wrong answer0/01ms508 KiB
2Wrong answer0/04ms1844 KiB
3Accepted1/11ms316 KiB
4Accepted1/11ms316 KiB
5Wrong answer0/21ms316 KiB
6Wrong answer0/21ms316 KiB
7Wrong answer0/21ms500 KiB
8Wrong answer0/21ms316 KiB
9Wrong answer0/22ms564 KiB
10Wrong answer0/22ms564 KiB
11Wrong answer0/23ms824 KiB
12Wrong answer0/23ms820 KiB
13Wrong answer0/21ms564 KiB
14Wrong answer0/22ms848 KiB
15Wrong answer0/22ms1076 KiB
16Wrong answer0/23ms1076 KiB
17Wrong answer0/24ms1588 KiB
18Wrong answer0/24ms1588 KiB
19Wrong answer0/24ms1876 KiB
20Wrong answer0/24ms2004 KiB
21Wrong answer0/24ms1844 KiB
22Wrong answer0/24ms1768 KiB
23Wrong answer0/24ms1524 KiB
24Wrong answer0/24ms1640 KiB
25Wrong answer0/24ms1844 KiB
26Wrong answer0/24ms1892 KiB
27Wrong answer0/24ms2000 KiB
28Wrong answer0/24ms2200 KiB