結果
問題 | No.2796 Small Matryoshka |
ユーザー |
![]() |
提出日時 | 2025-01-25 17:48:42 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 849 bytes |
コンパイル時間 | 1,769 ms |
コンパイル使用メモリ | 172,180 KB |
実行使用メモリ | 14,836 KB |
最終ジャッジ日時 | 2025-01-25 17:49:18 |
合計ジャッジ時間 | 4,796 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 9 WA * 10 |
ソースコード
#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_backint A[200000];int main() {int n;cin>>n;VVI R(n,VI(2));rep(i,n){cin>>R[i][0]>>R[i][1];}sort(all(R));rep(i,n){A[i]=-1;}A[0]=R[n-1][0];int siz=0;for(int i=n-2;i>=0;i--){if(A[siz]>=R[i][1]){siz++; A[siz]=R[i][1];}else if(A[0]<R[i][1]){}else{int l=0,r=siz,t;while(r-l>1){t=(r+l)/2;if(A[t]>=R[i][1]){l=t;}else{r=t;}}A[r]=max(A[r],R[i][0]);}}cout<<n-(siz+1)<<endl;}