#01 - Vị trí ban đầu

Xem PDF

Điểm: 1 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho mảng \(A\) gồm \(n\) phần tử phân biệt. Gọi \(B\) là mảng \(A\) sau khi sắp xếp không giảm.
Gọi \(C_i\) là vị trí trên mảng \(A\) sao cho \(B_i = A_{C_i}\).

Hãy tính mảng \(C\), hay nói cách khác là hãy cho biết vị trí ban đầu trên mảng \(A\) của mỗi phần tử trên \(B\).

Input

  • Dòng đầu tiên in ra số \(n\) \((n \leq 100000)\).
  • Dòng thứ hai in ra \(n\) số nguyên \(A_1, A_2, \dots, A_n\) \((1 \leq A_i \leq 10^9)\).

Output

  • In ra một dòng duy nhất gồm \(n\) số nguyên \(C_1, C_2, \dots, C_n\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \leq 1000\)
  • Subtask \(2\) (\(30\%\) số điểm): \(A_i \leq 1000000\)
  • Subtask \(3\) (\(40\%\) số điểm): không có giới hạn nào khác

Example

Test 1

Input
3
2 3 1
Output
3 1 2

Bình luận


  • 0
    LTTKanto    9:15 p.m. 21 Tháng 8, 2024

    vãi cả 1 điểm


    • 0
      minhquannguyenphuc2013    2:32 p.m. 21 Tháng 8, 2024

      def find_original_indices(n, A):
      indexed_A = [(value, index) for index, value in enumerate(A)]
      indexed_A.sort()
      C = [0] * n
      for sorted_index, (value, original_index) in enumerate(indexed_A):
      C[sorted_index] = original_index + 1
      return C
      n = int(input())
      A = list(map(int, input().split()))
      C = find_original_indices(n, A)
      print(' '.join(map(str, C)))

      khó phết


      • -5
        tk22NguyenHuyPhuc    9:03 p.m. 18 Tháng 8, 2024

        Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.