253312026-02-19 11:05:30abcdÜgyeletcpp17Hibás válasz 26/408ms588 KiB
#include <bits/stdc++.h>
using namespace std;
using pii=pair<int,int>;

int main(){
    int m,n;cin>>m>>n;
    vector<array<int,3>> v(n);
    for(int i=0;i<n;i++){
        cin>>v[i][0]>>v[i][1];
        v[i][2]=i+1;
    }
    sort(v.begin(),v.end(),[](array<int,3> a,array<int,3> b){
        if(a[0]==b[0])return a[1]>=b[1];
        return a[0]<=b[0];
    });
    int a=1,b=1,i=0,second=-1;
    vector<int> ans;
    while(a<m+1&&i<n){
        int best=-1;
        int prev=-1;
        bool yes=false;
        if(second!=-1){
            best=second;
            yes=true;
            second=-1;
        }
        while(i<n&&v[i][0]<=a&&prev<b){
            if(best==-1||v[i][1]>v[best][1]){
                second=best;
                best=i;
            }
            if(yes&&best!=i){
                if(v[i][1]>v[second][1])second=i;
            }
            prev=v[i][0];
            i++;
            yes=true;
        }
        if(best==-1){
            cout<<"0\n";
            return 0;
        }
        a=v[best][1]+1;
        ans.push_back(v[best][2]);
        if(a>b)swap(a,b);
    }
    cout<<ans.size()<<'\n';
    for(int x:ans)cout<<x<<' ';cout<<'\n';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base26/40
1Elfogadva0/01ms500 KiB
2Elfogadva0/04ms316 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms508 KiB
7Hibás válasz0/21ms316 KiB
8Elfogadva2/22ms500 KiB
9Elfogadva2/22ms316 KiB
10Elfogadva2/21ms316 KiB
11Elfogadva2/22ms316 KiB
12Elfogadva1/12ms316 KiB
13Elfogadva2/22ms316 KiB
14Elfogadva2/23ms316 KiB
15Elfogadva2/24ms316 KiB
16Elfogadva3/37ms588 KiB
17Hibás válasz0/37ms316 KiB
18Hibás válasz0/38ms316 KiB
19Hibás válasz0/38ms512 KiB
20Hibás válasz0/38ms316 KiB