题目
#include<bits/stdc++.h>
using namespace std;
int xb[100005][15];
int dp[100005][15];
int main(){
int n,T=0;
cin>>n;
for(int i=1;i<=n;i++){
int t,x;
cin>>x>>t;
xb[t][x]++;
T=max(T,t);
}
for(int i=1;i<=T;i++){
dp[i][0]=max(dp[i-1][0],dp[i-1][1])+xb[i][0];
dp[i][10]=max(dp[i-1][10],dp[i-1][9])+xb[i][10];
for(int j=1;j<10;j++){
dp[i][j]=max(dp[i-1][j],max(dp[i-1][j-1],dp[i-1][j+1]))+xb[i][j];
}
}
int ans=-1;
for(int i=0;i<=10;i++){
ans=max(ans,dp[T][i]);
}
cout<<ans;
return 0;
}
WA10pts求助