Array Transform Steps

Xem dạng PDF

Gửi bài giải

Điểm: 5,00
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C++

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

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.