trang chủ / bài tập / passexams

Kỳ thi kéo dài

Đề bài

Mô tả

Kỳ thi kéo dài n ngày. Thí sinh phải vượt qua các kỳ thi của m môn học, đánh số từ 1 đến m.

Mỗi ngày, người ta biết trước kỳ thi của đúng một môn có thể được tổ chức trong ngày đó (hoặc không có kỳ thi nào). Trong một ngày, thí sinh chỉ có thể làm một trong ba việc: dự thi môn được tổ chức ngày hôm đó (mất trọn cả ngày), ôn tập trọn ngày cho một môn bất kỳ, hoặc nghỉ ngơi. Không được dự quá một kỳ thi trong cùng một ngày.

Để vượt qua kỳ thi của môn i, thí sinh cần ôn tập tổng cộng ai ngày trước khi dự thi môn đó. Việc ôn tập không cần liên tục và có thể xen kẽ giữa các môn tùy ý; chỉ cần tổng số ngày đã ôn cho môn i đạt ít nhất ai tại thời điểm dự thi.

Mỗi môn phải được thi đúng một lần. Hãy tìm số ngày nhỏ nhất tính từ đầu để thí sinh vượt qua tất cả các kỳ thi, hoặc xác định rằng điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số ngày của kỳ thi và số môn học.
  • Dòng thứ hai chứa n số nguyên d1,d2,,dn, trong đó di là số hiệu môn có kỳ thi được tổ chức trong ngày i. Nếu di=0, ngày đó không có kỳ thi nào.
  • Dòng thứ ba chứa m số nguyên nguyên dương a1,a2,,am, trong đó ai là số ngày cần ôn tập trước khi thi môn i.

Dữ liệu ra

In ra một số nguyên: số ngày nhỏ nhất để vượt qua tất cả các kỳ thi. Nếu không thể, in ra 1.

Ràng buộc

  • 1n,m105
  • 0dim
  • 1ai105

Ví dụ

Input Output Giải thích
7 2
0 1 0 2 1 0 2
2 1
5 Ôn môn 1 trong ngày 1 và 2, thi môn 2 vào ngày 4 (đã ôn ngày 3), thi môn 1 vào ngày 5. Kết thúc sau 5 ngày.
10 3
0 0 1 2 3 0 2 0 1 2
1 1 4
9 Ôn môn 3 trong 4 ngày đầu rồi thi vào ngày 5, ôn môn 2 ngày 6 rồi thi ngày 7, ôn môn 1 ngày 8 rồi thi ngày 9.
5 1
1 1 1 1 1
5
-1 Cần 5 ngày ôn trước khi thi môn 1, nhưng dù thi vào ngày cuối (ngày 5) cũng chỉ có tối đa 4 ngày trước đó để ôn.

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