Loading Now

snipperTranning

n bia bắn từ a[0] đến a[n-1] , bia bắn với chỉ số i sẽ có điểm là a[i]-i với điều kiện điểm số mỗi bia luôn lớn hơn hoặc bằng 0.

Một xạ thủ phải bắn k lần, biết rằng mỗi bia chỉ được bắn trúng một lần và xạ thủ phải bắn trúng bia, hãy tính tổng số điểm cao nhất và số điểm thấp nhất mà xạ thủ có thể đạt được sau k lần bắn.

Ví dụ

  • Với a=[3,9,3,1,0]k=2snipperTranning(a,k)=11
    Giải thích:

Để đạt được số điểm cao nhất, xạ thủ bắn vào bia thứ 2, ghi 9-1=8 điểm. Tiếp đến bắn vào bia thứ 1, ghi 3-0=3 điểm, tổng điểm là 11.

Để đạt được số điểm thấp nhất, xạ thủ bắn vào bia thứ 4 và thứ 5, theo quy tắc tính điểm thì hai bia này điều bị âm điểm, vì vậy tổng điểm ghi được là 0.

  • Với a=[9,9,9,9]k=1snipperTranning(a,k)=15

Đầu vào/Đầu ra:

  • [Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.

  • [Đầu vào] Array a, Integer k
    0 ≤ n ≤ 10^5
    0 ≤ a[i] ≤ 10^8
    0 ≤ k ≤ n

  • [Đầu ra] Long 
    Tổng số điểm lớn nhất và bé nhất mà xạ thủ có thể đạt được, đầu vào đảm bảo luôn có kết quả.

Post Comment

Contact