Задача: Коровы в стойле
У Фермера Джона есть N коров (1 ≤ N ≤ 20) с высотами a1…aN. Его амбар имеет N стойл с максимальными высотами b1…bN (поэтому например, b5=17 означает, что коров с высотой не более 17 можно разместить в стойле 5). Сколькими различными способами ФД может разместить коров по стойлам, так чтобы ограничение по высоте было выполнено для каждого стойла.
Входные данные
Первая строка содержит N. Вторая строка содержит N разделённых одиночными пробелами чисел a1, a2,…,aN. Третья строка содержит N разделённых одиночными пробелами чисел b1,b2,…,bN. Все величины - целые числа в интервале [1,109].
Выходные данные
Количество способов, которыми ФД может разместить коров в стойлах, так чтобы для каждого стойла был удовлетворён лимит по высоте. Заметьте, что ответ может быть очень большим, поэтому для него требуется использовать 64-битную целую переменную, такую как "long long" в C++.
Примеры
№ |
Входные данные |
Выходные данные |
Пояснение |
1 |
4
1 2 3 4
2 4 3 4
|
8 |
В этом примере мы не можем разместить третью корову в первое стойло, поскольку 3=a3>b1=2. Аналогично, мы не можем разместить 4-ую корову в 1-ое или 3 -е стойло. Один из 8 способов размещения: корову 1 в стойло 1, корову 2 в стойло 2, корову 3 в стойло 3 корову 4 в стойло 4. |
Ваш ответ: