Олимпиадный тренинг

Задача . Коровы в стойле


Задача

Темы: Вывод формулы
У Фермера Джона есть 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. 

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w641
Java1
Комментарий учителя