首页 > 其他分享 >Boredom

Boredom

时间:2024-11-09 11:49:56浏览次数:3  
标签:Alex sequence int ak step Boredom he

TB. Boredom

Alex doesn’t like boredom. That’s why whenever he gets bored, he comes up with games. One long winter evening he came up with a game and decided to play it.

Given a sequence a consisting of n integers. The player can make several steps. In a single step he can choose an element of the sequence (let’s denote it ak) and delete it, at that all elements equal to ak + 1 and ak - 1 also must be deleted from the sequence. That step brings ak points to the player.

Alex is a perfectionist, so he decided to get as many points as possible. Help him.

Input

The first line contains integer n (1 ≤ n ≤ 105) that shows how many numbers are in Alex’s sequence.

The second line contains n integers a1, a2, …, an (1 ≤ ai ≤ 105).

Output

Print a single integer — the maximum number of points that Alex can earn.

Example

Input

9
1 2 1 3 2 2 2 2 3

Output

10

Note

Consider the third test example. At first step we need to choose any element equal to 2. After that step our sequence looks like this [2, 2, 2, 2]. Then we do 4 steps, on each step we choose any element equals to 2. In total we earn 10 points.

code

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
 
using namespace std;


const int N = 1e5+10,INF=0x3f3f3f3f,mod=1e9+7;
 
typedef pair<int,int> PII;

int T=1;
int a[N];
int f[N];

void solve(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int x;
		cin>>x;
		a[x]++;
	}
	f[0]=0;
	f[1]=a[1];
	for(int i=2;i<=N;i++){
		f[i]=max(f[i-1],f[i-2]+a[i]*i);
	}
	cout<<f[N]<<endl;
}

signed main(){
//	cin>>T; 
    while(T--){
        solve();
    }
    return 0;
}

标签:Alex,sequence,int,ak,step,Boredom,he
From: https://blog.csdn.net/2303_79062963/article/details/143580399

相关文章

  • Codeforces Round 260 (Div. 1)A. Boredom(dp)
    最开始写了一发贪心wa了,然后这种选和不选的组合优化问题,一般是考虑动态规划\(dp[i][0]:\)表示第i个数不选的最大值\(dp[i][1]:\)表示第i个数选的最大值考虑转移:\(dp[i][0]=max(dp[i-1][1],dp[i-1][0])\)\(dp[i][1]=dp[i-1][1]+a[i]*i\)需要将每一个数用一个桶统计次数因......
  • Cf 455A [Boredom]
    Cf455ABoredom题意:给出\(n\)个数字,从中选一个\(a_k\)删除,\(a_k\)为你获得的值,删除\(a_k\)后,如果数组里面有\(a_{k+1},a_{k-1}\)也会被删除,求获得值最大为......
  • Div 1.455A - Boredom
    思路类似大盗阿福,就是价值变了一下。记得开\(long~long\)(吼)记得开\(long~long\)(吼)记得开\(long~long\)(吼)重要事情说三遍代码#include<iostream>#include<algorit......