結果

問題 No.2796 Small Matryoshka
ユーザー はーチャンネル
提出日時 2025-01-25 14:39:10
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 849 bytes
コンパイル時間 1,773 ms
コンパイル使用メモリ 171,884 KB
実行使用メモリ 14,848 KB
最終ジャッジ日時 2025-01-25 14:39:17
合計ジャッジ時間 4,659 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 8 WA * 11
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<long long> VL;
typedef vector<VL> VVL;
typedef long long LL;
#define all(a) (a).begin(), (a).end()
#define Yes(n) cout << ((n) ? "Yes" : "No"  ) << endl
#define ALL(a)  (a).begin(),(a).end()
#define pb push_back

int A[200000];

int main() {
  int n;cin>>n;
  VVI R(n,VI(2));
  rep(i,n){
    cin>>R[i][1]>>R[i][0];
  }
  sort(all(R));
  rep(i,n){A[i]=-1;}
  A[0]=R[n-1][1];
  int siz=0;
  for(int i=n-2;i>=0;i--){
    if(A[siz]>=R[i][0]){siz++; A[siz]=R[i][1];}
    else if(A[0]<R[i][0]){}
    else{
      int l=0,r=siz,t;
      while(r-l>1){
        t=(r+l)/2;
        if(A[t]>=R[i][0]){l=t;}
        else{r=t;}
      }
      A[r]=max(A[r],R[i][1]);
    }
  }
  cout<<n-(siz+1)<<endl;
}
0