USACO Bronze T1/2021 - P3 - Just Stalling

Xem PDF

Điểm: 1 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

(dịch đại khái)

Cho \(N\) \((1 \leq N \leq 20)\) chú bò với độ cao \(a_1, a_2, \dots, a_N\). Trang trại có \(N\) chuồng với giới hạn độ cao \(b_1, b_2, \dots, b_N\) (tức, nếu \(b_5=17\), thì chỉ có chú bò cao không quá 17 đơn vị mới được ở chuồng 5).

Có bao nhiêu cách xếp bỏ vào các chuồng sao cho mỗi chú bò ở một chuồng khác nhau, và chú bò nào cũng ở trong chuồng mà không vượt giới hạn độ cao của chuồng đó?

Dữ liệu đầu vào

  • Dòng đầu tiên chứa số \(N\).
  • Dòng thứ hai chứa \(N\) số nguyên \(a_1, a_2, \dots, a_n\) \((1 \leq a_i \leq 10^9)\)
  • Dòng thứ ba chứa \(N\) số nguyên \(b_1, b_2, \dots, b_n\) \((1 \leq b_i \leq 10^9)\)

Định dạng đầu ra

  • Số lượng cách thỏa mãn đề. Đáp án không vượt quá kiểu dữ liệu số nguyên 64-bit (long long trong C++)

Điểm số

  • Test 1-5 thỏa mãn \(N \leq 8\).
  • Test 6-12 không có giới hạn nào khác.

Ví dụ

Ví dụ 1

Đầu vào
4
1 2 3 4
2 4 3 4
Đầu ra
8
Giải thích

Trong ví dụ này, không thể đưa chú bò thứ 3 vào chuồng 1 vì \(3=a_3>b_1=2\). Tương tự, không thể đưa bò 4 vào chuồng 1 hoặc 3. Một cách thỏa mãn là gán bò 1 vào chuồng 1, bò 2 chuồng 2, bò 3 chuồng 3, bò 4 chuồng 4.


Bình luận

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