import java.util.Scanner;
import java.lang.Math;
public class Main {
static public int N = 100;
static public int[][] cnt = new int[N+1][N+1];
static public int[][] dp = new int[N+1][N+1];
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = Integer.parseInt(sc.nextLine());
if(n != 0){
for(int j=0; j<=N;j++){
for(int k=0; k<=N;k++){
cnt[j][k]=0;
dp[j][k]=0;
}
}//end初始化
for(int i=1;i<=n;i++){
String str= sc.nextLine();
int left = Integer.parseInt(str.split(" ")[0]);
int mid = Integer.parseInt(str.split(" ")[1]);
cnt[left][mid]++;//有输入的取1.
}
//DP计算过程
for(int i=1; i<=N; i++){
for(int j=1; j<=N;j++){
dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]) + cnt[i][j]; //left小或者mid小,例如输入3 2,则看2 2和3 1有木有。
}
}
System.out.println(dp[N][N]);
}else{
System.out.println("*");
break;
}
}
sc.close();
}
}
这是为什么呀!!!!求大佬帮忙,搞一天了