Result: Accepted
Time: 7ms
Memory: 1760kB
#include<iostream>
#include<string>
#include<iomanip>
#include<cmath>
#include<deque>
#include<map>
#include<algorithm>
#include<cctype>
using namespace std;
map<string, int> x;
deque<pair<string, int>> r;
struct m {
int a;
int b;
int min;
int max;
};
deque<m>yz;
bool cmp1(m x, m y) {
return x.min < y.min;
}
bool cmp(m x, m y) {
if(x.max == y. max)
return cmp1(x, y);
return x.max < y.max;
}
int main() {
int n;
cin >> n;
for(int i = 0; i < n; i++) {
m d;
cin >> d.a >> d.b;
if(d.a <= d.b) {
d.min = d.a;
d.max = d.b;
}
else {
d.min = d.b;
d.max = d.a;
}
yz.push_back(d);
}
int temp = 1;
int flag = 0;
for(int k = 0; k < n; k++) {
if(flag)
temp++;
else
flag = 1;
int min = yz[0].min, max = yz[0].max;
yz.erase(yz.begin());
int i = 0;
while(i < yz.size()) {
if(yz[i].min <= min && yz[i].max <= max) {
min = yz[i].min;
max = yz[i].max;
yz.erase(yz.begin() + i);
i--;
}
i++;
}
if(yz.empty())
break;
}
cout << temp;
return 0;
}