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

  • Sort the big products

    Given n pairs of numbers (, ), (, ), …, (, ), you are asked to sort them in increasing order if the value of a pair is considered the number . You are asked to print the initial indices of the pairs after sorting them. In case there are several solutions, you are asked to print the one with smaller initial indices first.

    Input

    The first line of the input contains a single integer n (1 ≤ n ≤ ).
    The next n lines contain two integers (, ) (0 ≤ ) (1 ≤ ).

    Output

    The program should print the initial indices after sorting the pairs.

    Examples

    Input
    Output
    5 0 3 0 4 0 1 0 2 0 5
    3 4 1 2 5
    6 1 1 0 2 1 2 2 1 0 1 2 3
    5 1 2 3 4 6

    Explanation

    1. [1](0, 3) = 3 • [2](0, 4) = 4 • [3](0, 1) = 1 • [4](0, 2) = 2 • [5](0, 5) = 5 After sorting → 1 2 3 4 5 ⇒ initial indices will be: [3] [4] [1] [2] [5].
    1. [1](1, 1) = 2 • [2](0, 2) = 2 • [3](1, 2) = 4 • [4](2, 1) = 4 • [5](0, 1) = 1 • [6](2, 3) = 12 After sorting → 1 2 2 4 4 12 ⇒ initial indices will be: [5] [1] [2] [3] [4] [6].
     

    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