Cuộc xâm lăng của quái vật

Đề bài

Mô tả

Bạn chơi một trò bắn quái vật gồm n màn xếp thành một hàng, đánh số từ 1 đến n. Ở màn thứ iai con quái vật thường (mỗi con 1 máu) và đúng 1 con trùm (boss) có 2 máu.

Bạn có ba loại súng, ban đầu cả ba đều chưa nạp đạn và mỗi lần chỉ nạp được đúng một khẩu:

  • Súng lục: gây 1 sát thương lên một con quái vật, thời gian nạp r1.
  • Súng laser: gây 1 sát thương lên tất cả quái vật ở màn hiện tại (bao gồm cả trùm), thời gian nạp r2.
  • Súng AWP: tiêu diệt tức thì một con quái vật bất kỳ, thời gian nạp r3.

Bắn (khi súng đã nạp) và ngắm đều tốn 0 thời gian, bạn có vô hạn đạn. Bạn không được dùng súng lục hoặc AWP để bắn trùm khi ở màn đó vẫn còn quái vật thường chưa bị tiêu diệt.

Nếu bạn gây sát thương lên trùm nhưng không giết được ngay (tức trùm còn 1 máu sau đòn đánh), bạn buộc phải rời khỏi màn hiện tại sang một màn kề. Ngoài ra bạn cũng có thể chủ động di chuyển sang màn kề bất cứ lúc nào. Màn kề của màn i (với 1<i<n) là i1i+1; màn 1 chỉ kề màn 2, màn n chỉ kề màn n1. Mỗi lần di chuyển giữa hai màn kề tốn d thời gian, và trong lúc di chuyển bạn không được nạp đạn hay bắn.

Bạn bắt đầu ở màn 1. Mục tiêu là tiêu diệt trùm ở tất cả các màn. Hãy tính thời gian nhỏ nhất để hoàn thành (không nhất thiết phải kết thúc ở màn n, chỉ cần mọi trùm đều bị tiêu diệt).

Dữ liệu vào

  • Dòng đầu chứa năm số nguyên n, r1, r2, r3, d.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an.

Dữ liệu ra

Một số nguyên duy nhất: thời gian nhỏ nhất để tiêu diệt hết mọi trùm.

Ràng buộc

  • 2n106
  • 1r1r2r3109
  • 1d109
  • 1ai106

Ví dụ

Input Output Giải thích
4 2 4 4 1
4 5 1 2
31 Xử lý lần lượt từng màn theo hướng tối ưu để đạt tổng thời gian 31.
4 1 3 4 3
3 2 5 1
34 Ở màn 3 dùng laser để trùm còn 1 máu rồi buộc phải sang màn 4, xử lý xong màn 4 rồi quay lại kết liễu trùm màn 3 bằng một phát súng lục.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0