题目链接

https://vjudge.net/problem/CodeForces-455A

题面

Description

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 a**k) and delete it, at that all elements equal to a**k + 1 and a**k - 1 also must be deleted from the sequence. That step brings a**k 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, ..., a**n (1 ≤ a**i ≤ 105).

Output

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

Examples

Input

  1. 2
  2. 1 2

Output

  1. 2

Input

  1. 3
  2. 1 2 3

Output

  1. 4

Input

  1. 9
  2. 1 2 1 3 2 2 2 2 3

Output

  1. 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.

题解

简单DP题,记录一下每个数有多少个,\(dp[i]\)表示消除值为i的数字或者不消除值为i的数字的最大分数,直接从最小的数字的值开始dp是否消除即可

AC代码

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstring>
  4. #include <algorithm>
  5. #define N 100050
  6. using namespace std;
  7. long long f[N];
  8. long long cnt[N];
  9. bool vis[N];
  10. long long a[N];
  11. int main() {
  12. int n;
  13. scanf("%d", &n);
  14. for (int i = 1; i <= n; i++) {
  15. scanf("%lld", &a[i]);
  16. }
  17. sort (a + 1, a + n + 1);
  18. for (int i = 1; i <= n; i++) {
  19. cnt[a[i]]++;
  20. }
  21. long long ans = 0;
  22. for (int i = a[1]; i <= a[n]; i++) {
  23. f[i] = max(f[i - 1], f[i - 2] + cnt[i] * i);
  24. ans = max(ans, f[i]);
  25. }
  26. printf("%lld\n", ans);
  27. return 0;
  28. }

CodeForces-455A Boredom的更多相关文章

  1. CodeForces 455A Boredom (DP)

    Boredom 题目链接: http://acm.hust.edu.cn/vjudge/contest/121334#problem/G Description Alex doesn't like b ...

  2. Codeforces 455A - Boredom - [DP]

    题目链接:https://codeforces.com/problemset/problem/455/A 题意: 给出一个 $n$ 个数字的整数序列 $a[1 \sim n]$,每次你可以选择一个 $ ...

  3. Codeforces 455A Boredom (线性DP)

    <题目链接> 题目大意:给定一个序列,让你在其中挑选一些数,如果你选了x,那么你能够得到x分,但是该序列中所有等于x-1和x+1的元素将全部消失,问你最多能够得多少分. 解题分析:从小到大 ...

  4. Codeforces 455A Boredom 取数字的dp

    题目链接:点击打开链接 给定一个n长的序列 删除x这个数就能获得x * x的个数 的分数,然后x+1和x-1这2个数会消失.即无法获得这2个数的分数 问最高得分. 先统计每一个数出现的次数.然后dp一 ...

  5. CodeForces 456-C Boredom

    题目链接:CodeForces -456C Description Alex doesn't like boredom. That's why whenever he gets bored, he c ...

  6. CF 455A Boredom

    A. Boredom time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  7. Codeforces 445A Boredom(DP+单调队列优化)

    题目链接:http://codeforces.com/problemset/problem/455/A 题目大意:有n个数,每次可以选择删除一个值为x的数,然后值为x-1,x+1的数也都会被删除,你可 ...

  8. Codeforces 853C - Boredom

    853C - Boredom 题意 给出一个矩阵,每行每列有且仅有一个点.每次询问一个子矩形,问这些点构成的矩形有多少个与给定的矩形相交(两个处于对角线上的点可以组成矩形). 分析 考虑矩形周围 8 ...

  9. codeforces每日一题1-10

    目录: 1.1093D. Beautiful Graph(DFS染色) 2.514C - Watto and Mechanism(Tire) 3.69E.Subsegments(STL) 4.25C. ...

  10. dp学习笔记(各种dp,比较杂)

    HDU1176 中文题意不多解释了. 建一个二维dp数组,dp[ i ][ j ]表示第 i 秒落在 j 处一个馅饼.我们需要倒着DP,为什么呢,从 0秒,x=5处出发,假如沿数组正着往下走,终点到哪 ...

随机推荐

  1. CodeForces - 598A Tricky Sum (数学,快速幂的运用)

    传送门: http://codeforces.com/problemset/problem/598/A A. Tricky Sum time limit per test 1 second memor ...

  2. phpstorm常用plugins

    CodeGlance JsonOnlineViewer CSS-X-Fire Laravel Plugin PHP annotations

  3. Could..... not preload global game manager

    发布PC版后出现这个错误,是没有破解成功,卸载后重新安装破解就可以了 http://www.cocoachina.com/bbs/read.php?tid=84587

  4. SpringBoot非官方教程 | 第二十一篇: springboot集成JMS

    转载请标明出处: http://blog.csdn.net/forezp/article/details/71024024 本文出自方志朋的博客 springboot对JMS提供了很好的支持,对其做了 ...

  5. 大白话解释IP多播

    多播引入 比方说我是一个班主任,管着三个班,每个班30个人,每个班有自己的班长.领导让我宣传19大视 频报告,我这里有源文件.对于普通的单播我需要复制90个副本,给各个班长每人30份,然后班 长在自己 ...

  6. oracle中特殊字符替换

    replace语法: REPLACE(char,search_string,[replacement_string]) 在replace中,每个search_String 都会被replacement ...

  7. 修改状态栏,电池,wifi的颜色为白色

    修改状态栏,电池,wifi的颜色为白色 在info里面设置View controller-based status bar appearance,为no

  8. jzoj5195. 【NOIP2017提高组模拟7.3】A(递推,打表)

    Description

  9. poj 3694 Network : o(n) tarjan + O(n) lca + O(m) 维护 总复杂度 O(m*q)

    /** problem: http://poj.org/problem?id=3694 问每加一条边后剩下多少桥 因为是无向图,所以使用tarjan缩点后会成一棵树并维护pre数组 在树上连一条边(a ...

  10. ABAP术语-Application

    Application 原文:http://www.cnblogs.com/qiangsheng/archive/2007/12/15/995737.html Set of work processe ...