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

  • Remove a Single Element

    Given a list of n integers, you are asked to remove one of the integers in a way that the sum of the resulting sequence modulo m is equal to s. More formally, if the index of the removed element is r:
    The program should find the index of that number or print Impossible if that kind of number does not exist.

    Input

    The first line of the input contains 3 integers n (1 ≤ n ≤ ), m (1 ≤ m ≤ ), and s (0 ≤ s < m).
    The second line contains n space-separated integers ().

    Output

    In case such a number does not exist, the program should print Impossible, otherwise, the program should print the smallest index of such a number in the given sequence. The indexing starts from 1.

    Examples

    Input
    Output
    3 8 5 5 0 7
    3
    3 8 5 5 10 7
    Impossible
     

    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