#include <cstdio>
#include <stdio.h>
#include <stdbool.h>
#include <iostream>
#include <map>
#include <vector>
#include <climits>
#include <stack>
#include <string>
#include <queue>
#include <algorithm>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <cmath>
#include <cctype>
#include <bitset>
#include <iomanip>
#include <cstring>
#include <numeric>
#include <cassert>
using namespace std;
#define int long long
#define pii pair<int, int>
#define mp make_pair
#define pb push_back
#define fi first
#define se second
vector<vector<int> > twok;
int calc(int l, int r){
int res=0;
for (int i=19; i>=0; --i)if (twok[i][l]<=r)res+=(1<<i), l=twok[i][l];
return res;
}
int32_t main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, k;
cin>>n>>k;
vector<int> disc;
vector<pii> vect(n);
for (int i=0; i<n; ++i)cin>>vect[i].fi>>vect[i].se, disc.pb(vect[i].fi), disc.pb(vect[i].se);
sort(disc.begin(), disc.end());
disc.erase(unique(disc.begin(), disc.end()), disc.end());
for (int i=0; i<n; ++i){
vect[i].fi=lower_bound(disc.begin(), disc.end(), vect[i].fi)-disc.begin();
vect[i].se=lower_bound(disc.begin(), disc.end(), vect[i].se)-disc.begin();
}
twok.resize(20, vector<int>(disc.size()+1));
vector<vector<int> > ooga(disc.size()+1);
for (int i=0; i<n; ++i)ooga[vect[i].fi].pb(i);
int mn=disc.size();
return 0;
for (int i=disc.size(); i>=0; --i){
for (auto a:ooga[i])mn=min(mn, vect[a].se);
twok[0][i]=mn;
}
for (int i=1; i<20; ++i)for (int j=0; j<=disc.size(); ++j)twok[i][j]=twok[i-1][twok[i-1][j]];
int c=calc(0, disc.size()-1);
if (c<k){
cout<<-1;
return 0;
}
set<pii> s;
s.insert(mp(0ll, 0ll));
s.insert(mp(disc.size(), disc.size()));
for (int i=0; s.size()<k+2; ++i){
int l=(--s.lower_bound(mp(vect[i].se, 0ll)))->se;
int r=s.lower_bound(mp(vect[i].se, 0ll))->fi;
if (l>vect[i].fi)continue;
int res=c-calc(l, r)+calc(l, vect[i].fi)+calc(vect[i].se, r)+1;
if (res>=k)cout<<i+1<<"\n", c=res, s.insert(vect[i]);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |