#include<bits/stdc++.h> using namespace std; struct doan { int a,b; }; int n;long long i,dem=1; doan d[1000005]; long long b[1000005]; void nhap() { scanf("%d\n",&n); for(i=1;i<=n;i++) { scanf("%d %d\n",&d[i].a,&d[i].b); } } bool ss(doan x, doan y) { if(x.b<y.b) return true; if(x.b>y.b) return false; if(x.a<y.a) return true; if(x.a>y.a) return false; return false; } void qs(long long l, long long r) { long long i=l; long long j=r; doan k=d[(l+r)/2]; while(i<=j) { while (ss(d[i],k)==true) i++; while (ss(k,d[j])==true) j--; if(i<=j) { swap(d[i],d[j]); i++;j--; } } if(l<j) qs(l,j); if(i<r) qs(i,r); } void xuli() { qs(1,n); // for(int i=1;i<=n;i++) cout << d[i].a << " " << d[i].b << endl; dem=1; b[dem]=d[1].b-1; dem++; b[dem]=d[1].b; for(int i=2;i<=n;i++) { if(d[i].a>b[dem]) //doan i chua co so nao { dem++; b[dem]=d[i].b-1; dem++; b[dem]=d[i].b; } else if(d[i].a>b[dem-1]) // doan i co 1 so { dem++; b[dem]=d[i].b; } } printf("%d\n",dem); // for(int i=1;i<=dem;i++) printf("%d ",b[i]); } int main() { freopen("sets.inp","r",stdin); freopen("sets.out","w",stdout); nhap(); xuli(); }
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Ba, 3 tháng 5, 2022
SETS C++
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.