#include <iostream> #include <vector> using namespace std; vector<int> count(10001,0);//记录数组中每个数出现的次数 vector<vector<int>> dp(10005,vector(2,0)); int main() { int n; cin>>n; int maxValue=0; for(int i=0;i<n;i++){ int x; cin>>x; count[x]++; maxValue=x>maxValue?x:maxValue; } int maxx=0; for(int i=1;i<=maxValue;i++){ //不取 dp[i][0]=max(dp[i-1][0],dp[i-1][1]); //取 dp[i][1]=dp[i-1][0]+i*count[i]; maxx=max(dp[i][1],dp[i][0]); } cout<<maxx; return 0; } // 64 位输出请用 printf("%lld")