CARBON CREDIT

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho \(N\) nhà máy có lượng phát thải \(A_1, A_2, \dots, A_N\). Cần đưa phát thải mỗi nhà máy về đúng giá trị \(K\). Việc chuyển \(1\) đơn vị phát thải giữa nhà máy \(i\) và nhà máy \(i+1\) tốn chi phí \(C_i\).

Hãy tính tổng chi phí tối thiểu, hoặc in ra \(-1\) nếu tổng phát thải ban đầu khác \(N \cdot K\).

Input

  • Dòng \(1\): Hai số nguyên \(N, K\) (\(N \le 10^5, K \le 10^9\)).
  • Dòng \(2\): \(N\) số nguyên \(A_1, A_2, \dots, A_N\) (\(A_i \le 10^9\)).
  • Dòng \(3\): \(N-1\) số nguyên \(C_1, C_2, \dots, C_{N-1}\) (\(C_i \le 10^6\)).

Output

  • In ra một số nguyên duy nhất là chi phí tối thiểu tìm được, hoặc \(-1\) nếu không thể thực hiện yêu cầu. (Đối với các trường hợp khác \(-1\) cần in ra đáp án chia lấy dư cho \(10^9+7\))

Example

Test 1

Input
4 3
5 1 2 4
10 2 5
Output
25
Note
  • Chuyển \(2\) đơn vị từ nhà máy \(1\) sang nhà máy \(2\) (tốn \(2 \cdot 10 = 20\) chi phí).
  • Chuyển \(1\) đơn vị từ nhà máy \(4\) sang nhà máy \(3\) (tốn \(1 \cdot 5 = 5\) chi phí).
  • Tổng chi phí \(= 20 + 5 = 25\).

Test 2

Input
3 5
2 4 6
1 1
Output
-1

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.