Algorithms and Data Structures

  • Profound Academy

    • Status
      • 1
        Implementation
      • 2
        Bitwise operations
      • 3
        Prefix Sums
      • 4
        Sliding window / Two pointers
      • 5
        Modular Arithmetic
      • 6
        Number Theory
      • 7
        Binary Search
      • 8
        Basic Sorting
      • 9
        Greedy Algorithms
      • 10
        Basic Dynamic Programming
      • 11
        Recursion
      • 12
        Linked LIst
      • 13
        Queue & Stack
      • 14
        Binary tree + BST
      • 15
        Divide & Conquer + Advanced Sorting
      • 16
        Heap
      • 17
        Hashing
      • 18
        Graph Representation
      • 19
        BFS

  • Deleting numbers

    Given n numbers , you earn points by deleting numbers from the array. When deleting a number , you earn points. Yet, you must delete all the numbers equal to and from the array (those do not earn you points).
    What would be the maximum possible points you can get?

    Input

    The input contains a single integer n (1 ≤ n ≤ ).
    The next line contains n space-separated integers (1 ≤ ).

    Output

    The program should print the maximum possible points you can get.

    Examples

    Input
    Output
    3 2 4 3
    6
    6 3 2 3 2 3 4
    9

    Explanation

    1. Example 1:
      1. Delete 2 ⇒ earn 2 ⇒ also delete 3
      2. Delete 4 and earn 4
      3. In total, the score would be 6
    1. Example 2:
      1. Delete 3 ⇒ earn 3 ⇒ also delete all 2s and all 4s
      2. Delete 3 ⇒ earn 3 ⇒ nothing to delete
      3. Delete 3 ⇒ earn 3 ⇒ nothing to delete
      4. In total, the score would be 9
     

    Constraints

    Time limit: 1 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

    To check your solution you need to sign in
    Sign in to continue