LQDOJ CUP 2022 - Round 3 - SHOPPING

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: 2200 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: SHOPPING.inp Output: SHOPPING.out

Bảo và Lâm là đôi bạn thân. Cả hai bạn rất đam mê đồ công nghệ nên cả hai muốn đến khu mua sắm công nghệ Shiro. Ở con đường Shiro, có \(n\) cửa hàng xếp thành hàng ngang được đánh số từ \(1\) đến \(n\).

Thời nay, việc tìm hiểu một cửa hàng mà không cần vào trực tiếp ở quầy là một điều dễ dàng. Chỉ cần tìm ra page, web của những cửa hàng đó, bạn có thể tìm trước các sản phẩm mà mình muốn mua thay vì đến tận nơi để xem. Do đó, trước khi đến trung tâm công nghệ Shiro đông đúc, Bảo và Lâm sẽ ở nhà tìm hiểu hết \(n\) cửa hàng và sau đó mới đến tại cửa hàng để mang về. Sau khi đã tính toán xong, cả hai bạn đã thống kê lại lượng tiền cần chi ra đối với cửa hàng thứ \(i\)\(a_i\) đồng. Và với mọi cửa hàng \(i\), Bảo và Lâm cũng thống nhất rằng nếu đã mua thì phải mua đúng \(a_i\) đồng như đã tính toán ở nhà hoặc là không mua gì cả.

Sau khi đã có bản thống kê chi tiêu, cả hai bạn bắt đầu di chuyển đến khu Shiro để mua sắm. Bảo sẽ chọn cửa hàng bắt đầu di chuyển đó là cửa hàng \(l\), nghĩa là sau đó, cả hai bạn trẻ sẽ đến các cửa hàng \(l+1,l+2,\ldots\) tức là cả hai sẽ tới cửa hàng \(i\) rồi mới sang cửa hàng \(i+1\) và bắt đầu từ vị trí \(l\). Tuy nhiên, lâm nhận thấy rằng lúc này cả hai chỉ có trong tay số tiền là \(k\) đồng nên có thể sẽ không chi tiêu được theo dự định tại tất cả các cửa hàng từ vị trí \(l\) đến vị trí \(n\). vì vậy, Lâm quyết định đưa ra hai giá trị \(u,v\) \((u \le v)\) làm tiêu chí mua sắm. Tại cửa hàng \(i\), nếu giá trị \(a_i\) không nằm trong đoạn \([u,v]\) thì Bảo và Lâm sẽ bỏ qua và tiếp tục di chuyển đến cửa hàng thứ \(i+1\) (nếu \(i<n\)). Ngược lại, với \(u \le a_i \le v\), cả hai bạn sẽ bỏ ra \(a_i\) đồng như dự tính nếu như số tiền còn lại vẫn \((a_i \le k)\). Tuy nhiên, nếu số tiền còn lại không đủ để mua như dự định \((a_i > k)\) thì cả hai sẽ rất buồn chán và đi về luôn mà không quan tâm các cửa hàng sau đó nữa. Đương nhiên nếu mua được theo dự tính thì số tiền mà hai bạn còn lại cho chuyến mua sắm lần này sẽ giảm đi \(a_i\) đồng.

Như vậy, số lượng cửa hàng có thể mua sắm được trong chuyến đi lần này phụ thuộc vào việc cả hai bạn chọn \(l,u,v\) và số tiền mà cả hai mang theo \(k\). Bạn hãy giúp hai bạn trẻ tính xem số cửa hàng mà các bạn đi qua là bao nhiêu? Lưu ý rằng, những cửa hàng có giá trị \(a_i\) không nằm trong đoạn \([u,v]\) vẫn xem là đi qua vì sau đó cả hai có thể di chuyển tiếp, còn cửa hàng có giá trị \(a_i\) thuộc đoạn \([u,v]\) nhưng lại có \(a_i > k\) thì xem như không đi qua vì đây là cửa hàng làm cho cả hai bạn thất vọng.

\(q\) giả thuyết cho các giá trị \(l,u,v,k\) và vẫn dựa trên \(n\) giá trị \(a_1, a_2, \ldots, a_n\) dự định ban đầu của cả hai bạn. Với mỗi giả thuyết, bạn hãy tính xem cả hai bạn Bảo và Lâm sẽ đi qua được bao nhiêu cửa hàng, bạn cần in ra số lượng đó.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(q\) (\(1 \le n, q \le 10^5\)) là số lượng cửa hàng.
  • Dòng tiếp theo chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \le a_i \le 10^9\)) là \(n\) dự định tương ứng với \(n\) cửa hàng của hai bạn.
  • Trong \(q\) dòng tiếp theo, mỗi dòng chứa bốn số nguyên \(l\), \(u\), \(v\), và \(k\) (\(1 \leq l \le n\), \(1 \leq u \le v \le 10^9\), \(1 \leq k \le 10^9\)) mô tả một giả thiết.

Output

  • Với mỗi giả thuyết, hãy đưa ra số lượng cửa hàng mà cả hai bạn đi qua.

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): Các giả thuyết có \(k\) bằng nhau và \(u=1\), \(v=10^9\).
  • Subtask \(2\) (\(20\%\) số điểm): \(a_i \leq 500\) với mọi \(1 \leq i \leq n\).
  • Subtask \(3\) (\(20\%\) số điểm): Các giả thiết có \(v - u \le 5\).
  • Subtask \(4\) (\(20\%\) số điểm): Các giả thiết có \(u = 1\).
  • Subtask \(5\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
7 3
4 6 8 2 10 5 1
4 1 5 7
1 2 3 5
1 1 10 15
Output
3
7
2
Note
  • Ở giả thiết thứ nhất, cả hai bạn sẽ đi qua cửa hàng \(4\), mua hết \(2\) đồng và còn lại \(5\) đồng. Đến cửa hàng \(5\), do các bạn dự định mua \(10\) đồng nhưng ở trường hợp này cả hai chỉ muốn mua tại các cửa hàng có dự định trong khoảng \([1, 5]\) nên cả hai sẽ đi tiếp đến cửa hàng \(6\). Đến đây các bạn vẫn có thể mua và số tiền còn lại bây giờ là \(0\) đồng. Đến cửa hàng thứ \(7\), cả hai bạn rất buồn vì có số tiền mua sắm dự định nằm trong tiêu chí nhưng lại không đủ tiền. Nên cả hai chỉ nhớ những cửa hàng đã đi qua là \(4, 5, 6\). Còn cửa hàng \(7\) thì cả hai không muốn phải nhớ đến nữa.
  • Ở giả thiết thứ hai, cả hai sẽ di chuyển từ cửa hàng \(1\), lần lượt đi qua các cửa hàng và chỉ có cửa hàng \(4\) là mua được theo đúng tiêu chí, và số tiền mua còn lại vẫn còn đủ để mua. Do đó cả hai đã đi qua toàn bộ \(7\) cửa hàng.
  • Ở giả thiết thứ ba, cả hai sẽ di chuyên từ cửa hàng \(1\), mua theo dự định và còn \(11\) đồng. Sang cửa hàng thứ \(2\), vẫn có thể mua theo dự định và còn \(5\) đồng. Sang cửa hàng thứ \(3\), mặc dù số tiền bỏ ra dự định nằm trong tiêu chí nhưng lại không đủ tiền, cả hai thất vọng đi về và không muốn nhớ đến cửa hàng thứ \(3\) này nữa. Do đó chỉ xem như cả hai chỉ đi qua các cửa hàng \(1\)\(2\).

Bình luận

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

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

Kỳ thi: