ATS - Array Transform Steps
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: MrThaodaica

Cho một danh sách chứa các số nguyên không âm arr.

Với mỗi phần tử trong mảng, bạn được quyền tăng thêm cho phần tử đó một giá trị nguyên dương bất kì. Hãy xác định số phép biến đổi ít nhất để mảng trở thành tăng dần (phần tử đứng phía sau lớn hơn phần tử đứng phía trước)

Ví dụ

  • Cho arr = [1, 1], kết quả ascArrayTransformSteps(arr) = 1.
    Bạn cần dùng ít nhất 1 phép biến đổi, là tăng số thứ hai thêm 1 đơn vị để thu được mảng tăng dần [1,2]
  • Cho arr = [2, 1, 3], kết quả ascArrayTransformSteps(arr) = 2.
    Bạn cần dùng ít nhất 2 phép biến đổi:
    • Tăng 1 thêm 2 đơn vị, thành số 3
    • Tăng 3 thêm 1 đơn vị, thành số 4
      Bạn thu được mảng tăng dần [2,3,4]
  • Cho arr = [1, 2, 3], kết quả ascArrayTransformSteps(arr) = 0.
    Mảng đã cho thoả mãn là mảng tăng dần. Bạn ko cần sử dụng phép biến đổi nào cả

Đầu vào/Đầu ra

  • [Đầu vào] Array.Integers arr
    0 <= arr.size <= 1000.
    0 <= arr[i] <= 3000.
  • [Đầu ra] Integer

Ví dụ

  • input
    2
    1 1
    output
    1
  • input
    3
    2 1 3
    output
    2
Back to Top