11882022-03-15 17:30:54k_balintHadjáratcpp14Időlimit túllépés 32/100282ms62604 KiB
#include <bits/stdc++.h>
using namespace std;
const int c=100005;

int n;
map<int,int> fen[c];
int len[c],prv[c];
pair<int,int> arr[c];

void update(int x, int y, int val){
    for(int i=x;i<c;i+=i&-i){
        for(int j=y;j<10*c;j+=j&-j) fen[i][j]=val;
    }
}

int query(int x, int y){
    int res=0;
    for(int i=x;i>0;i-=i&-i){
        for(int j=y;j>0;j-=j&-j){
            int cur=fen[i][j];
            if(len[cur]>len[res]) res=cur;
        }
    } return res;
}

vector<int> comp;
int f(int k){ return (lower_bound(comp.begin(),comp.end(),k)-comp.begin()) +1;}
vector<int> ans;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>arr[i].first>>arr[i].second;
        comp.emplace_back(arr[i].first);
    }
    
    sort(comp.begin(),comp.end());
    comp.resize(unique(comp.begin(),comp.end())-comp.begin());

    len[0]=0;
    for(int i=1;i<=n;i++){
        int cur=f(arr[i].first);
        prv[i]=query(cur-1,arr[i].second-1);
        len[i]=len[prv[i]]+1;
        update(cur,arr[i].second,i);
    }

    int maxi=0;
    for(int i=1;i<=n;i++){
        if(len[i]>len[maxi]) maxi=i;
    }

    cout << len[maxi] << '\n';
    while(maxi != 0){
        ans.emplace_back(maxi); maxi=prv[maxi];
    }

    for(int i=ans.size()-1; i>=0;i--) cout << ans[i] << ' ';
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base32/100
1Elfogadva0/07ms11260 KiB
2Időlimit túllépés0/0219ms30240 KiB
3Elfogadva4/46ms11964 KiB
4Elfogadva4/46ms11984 KiB
5Elfogadva4/46ms12032 KiB
6Elfogadva4/47ms12056 KiB
7Elfogadva4/46ms12048 KiB
8Elfogadva4/47ms11980 KiB
9Elfogadva4/48ms12292 KiB
10Elfogadva4/435ms18176 KiB
11Időlimit túllépés0/4212ms51752 KiB
12Időlimit túllépés0/4217ms30176 KiB
13Időlimit túllépés0/6244ms24952 KiB
14Időlimit túllépés0/6282ms29832 KiB
15Időlimit túllépés0/6202ms30908 KiB
16Időlimit túllépés0/6219ms31744 KiB
17Futási hiba0/6185ms62376 KiB
18Futási hiba0/6165ms62260 KiB
19Futási hiba0/6152ms62376 KiB
20Futási hiba0/6164ms62604 KiB
21Futási hiba0/6181ms62604 KiB
22Futási hiba0/6179ms62604 KiB