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

  • Summing up coins

    Given n coins of some value, you are asked to find out all the possible sums you can obtain with those coins.

    Input

    The first line of the input contains two integers n (1 ≤ n ≤ 100).
    The next line contains n space-separated integers (1 ≤ ≤ 1000) the coin values.

    Output

    The program should first print the number of possible sums one can obtain with those coins on the first line. While the second line of the output should contain all the possible sums in increasing order separated by a space.

    Examples

    Input
    Output
    4 2 5 4 2
    9 2 4 5 6 7 8 9 11 13
     

    Constraints

    Time limit: 2 seconds

    Memory limit: 512 MB

    Output limit: 1 MB

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