Pagini recente » Cod sursa (job #2849358) | Cod sursa (job #7346) | Cod sursa (job #2558694) | Cod sursa (job #2399257) | Cod sursa (job #1416115)
#include<fstream>
#include<algorithm>
using namespace std;
int n, nr, i, p, u, mid, maxim;
pair<int, int> v[100002];
int w[100002];
int cmp(pair<int, int> a, pair<int, int> b){
if(a.first == b.first){
return a.second > b.second;
}
return a.first < b.first;
}
ifstream fin("plicuri.in");
ofstream fout("plicuri.out");
int main(){
fin>> n;
for(i = 1; i <= n; i++){
fin>> v[i].first >> v[i].second;
}
sort(v + 1, v + n + 1, cmp);
nr = 1;
w[1] = 1;
for(i = 2; i <= n; i++){
if(v[w[nr]].second < v[i].second){
nr++;
w[nr] = i;
}
else{
p = 1;
u = nr;
while(p <= u){
mid = (p + u) / 2;
if(v[w[mid]].second > v[i].second){
u = mid - 1;
}
else{
p = mid + 1;
}
}
if(v[i].second > v[w[p-1]].second){
w[p] = i;
}
}
}
fout<< nr <<"\n";
return 0;
}