Center Term

Xem dạng PDF

Gửi bài giải

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

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++

Nguồn đề: [Freecontest] https://drive.google.com/drive/folders/1uKg2pAWKYfTb77mF8GclbaBb3HTiHT

*Lời giải: * https://drive.google.com/file/d/1imDygPrrGvQKudqPNFx5MZvaz3E9iSbV/view?usp=sharing

*Solution: * https://drive.google.com/file/d/1y1ssS3wdr5n_Nge95I4plChV7Kv0V252/view?usp=sharing

Bi là một học sinh giỏi trong lớp. Sắp tới, Bi phải thi để nhận chứng chỉ cho M môn học trong vòng N ngày. Mỗi môn học được đánh số từ 1 đến M và để nhận được chứng chỉ thứ i thì cần bỏ ra ~t_i~ ngày để ôn tập và các ngày ôn tập không cần liên tiếp. Một ngày Bi có thể tham gia thi, ôn tập hoặc nghỉ ngơi.

Bạn được biết lịch tổ chức các kì thi của M môn học sắp tới trong vòng N ngày. Hãy giúp Bi lên lịch sao cho số ngày cần là ít nhất để có thể lấy được M chứng chỉ.

Input

Dòng 1: Gồm 2 số nguyên N, M ~( 1 \leq N, M \leq 10^5)~

Dòng 2: Gồm N số nguyên ~X_1, X_2, .., X_N~ với ~X_i (0 \leq X_i \leq M)~ thể hiện cho ngày thứ i có kì thi để lấy chứng chỉ ~X_i~. Nếu ~X_i=0~ thì ngày đó không có kì thi nào được tổ chức.

Dòng 3: Gồm M số nguyên ~t_1, t_2, .., t_M~ với ~t_i (1 \leq t_i \leq 10^5)~ là số ngày cần ôn tập để lấy được chứng chỉ thứ i.

Kết quả

Gồm 1 số duy nhất là số ngày ít nhất để Bi có thể nhận được tất các các chứng chỉ.

Nếu không thể lấy trong vòng N ngày thì xuất -1.

Sample Input 1

9 2
1 1 2 0 1 2 1 1 2
2 1

Sample Output 1

5

Giải thích

  • Bi sẽ ôn tập ngày 1 cho môn thứ 2 và thi nó vào ngày thứ 3.

  • Bi sẽ ôn tập ngày 2 và 4 cho môn thứ 1 và thi nó vào ngày thứ 5.


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.