C写的
#include <stdio.h>
int main(){
int n = 0;
scanf("%d",&n);
int letters[n][2];
int dp[n];
for(int i = 0; i < n; i++){
scanf("%d %d",&letters[i][0],&letters[i][1]);
dp[i] = 1;
}
for(int i = 1; i < n; i++){
int cmp = i;
for(int j = i-1; j >= 0; j--){
if(letters[cmp][0] > letters[j][0])
break;
else if(letters[cmp][0] < letters[j][0]){
int tmp = letters[cmp][0];
letters[cmp][0] = letters[j][0];
letters[j][0] = tmp;
tmp = letters[cmp][1];
letters[cmp][1] = letters[j][1];
letters[j][1] = tmp;
cmp--;
}
else{
if(letters[cmp][1] >= letters[j][1]){
break;
}
else{
int tmp = letters[cmp][0];
letters[cmp][0] = letters[j][0];
letters[j][0] = tmp;
tmp = letters[cmp][1];
letters[cmp][1] = letters[j][1];
letters[j][1] = tmp;
cmp--;
}
}
}
}
int sign = 0;
for(int i = 1; i < n; i++){
for(int j = 0;j < i;j++){
if(letters[i][1] > letters[j][1] && letters[i][0] != letters[j][0]){
sign = 1;
dp[i] = dp[i] > dp[j] ? dp[i] : dp[j];
}
}
if(sign == 1){
dp[i] += 1;
sign = 0;
}
}
int tmp = 0;
for(int i = 0; i < n; i++){
tmp = tmp > dp[i] ? tmp : dp[i];
}
printf("%d",tmp);
return 0;
}
int main(){
int n = 0;
scanf("%d",&n);
int letters[n][2];
int dp[n];
for(int i = 0; i < n; i++){
scanf("%d %d",&letters[i][0],&letters[i][1]);
dp[i] = 1;
}
for(int i = 1; i < n; i++){
int cmp = i;
for(int j = i-1; j >= 0; j--){
if(letters[cmp][0] > letters[j][0])
break;
else if(letters[cmp][0] < letters[j][0]){
int tmp = letters[cmp][0];
letters[cmp][0] = letters[j][0];
letters[j][0] = tmp;
tmp = letters[cmp][1];
letters[cmp][1] = letters[j][1];
letters[j][1] = tmp;
cmp--;
}
else{
if(letters[cmp][1] >= letters[j][1]){
break;
}
else{
int tmp = letters[cmp][0];
letters[cmp][0] = letters[j][0];
letters[j][0] = tmp;
tmp = letters[cmp][1];
letters[cmp][1] = letters[j][1];
letters[j][1] = tmp;
cmp--;
}
}
}
}
int sign = 0;
for(int i = 1; i < n; i++){
for(int j = 0;j < i;j++){
if(letters[i][1] > letters[j][1] && letters[i][0] != letters[j][0]){
sign = 1;
dp[i] = dp[i] > dp[j] ? dp[i] : dp[j];
}
}
if(sign == 1){
dp[i] += 1;
sign = 0;
}
}
int tmp = 0;
for(int i = 0; i < n; i++){
tmp = tmp > dp[i] ? tmp : dp[i];
}
printf("%d",tmp);
return 0;
}