Ուղարկել | Բոլոր լուծումները | Լավագույն լուծումները | Վերադառնալ ցուցակին |
ACM_0228 - ВЕЛИКИЙ УРАВНИТЕЛЬ |
За один шаг Великий Уравнитель может совершать над натуральным числом N две операции:
-
прибавить одно из заданных чисел a1…ak
-
умножить на одно из заданных чисел b1…bs
Определите, сколькими различными способами из числа N Великий Уравнитель может получить число M, если последним действием должно быть умножение. Два способа считаются различными, если они содержат различное количество операций или если на каком-то шаге использованное действие или число отличаются.
Входные данные
Первая строка входных данных содержит одно число T – количество тестов (T ≤ 70). Далее идут описания тестов. Описание каждого теста начинается со строки, содержащей два натуральных числа N и M (1 ≤ N < M ≤ 105). Следующая строка содержит целое число K (0 ≤ K ≤ 100). Если K > 0, то следующая строка содержит K натуральных чисел a1…aK (1 ≤ ai ≤ 100). Следующая строка содержит целое число S (0 ≤ S ≤ 100). Если S > 0, то следующая строка содержит S натуральных чисел b1…bS (2 ≤ bj ≤ 100). Гарантируется, что сумма (K+S) по всем тестам не превосходит 5000, сумма M по всем тестам не превосходит 13*105.
Выходные данные
Для каждого теста в отдельной строке выведите одно число – количество способов, которым можно получить число M при том, что последним действием должно быть умножение. Ответ дать по модулю 109.
Примеры
№ |
stdin |
stdout |
1 |
3 1 5 3 1 2 3 2 4 5 1 8 0 2 2 4 1 6 2 1 1 2 3 3 |
1 3 1 |
Ավելացրեց. | Հրանտ Հովհաննիսյան |
Ամսաթիվ. | 2014-10-08 |
Ժամանակի սահմանափակումը. | 1s |
Ծրագրի տեքստի սահմանափակումը. | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Լեզուներ. | Բոլորը բացի ASM32 ASM64 GAWK CLPS CLOJURE D ERL FSHARP FORTRAN GOSU HASK ICON ICK NEM NIM OBJC-CLANG PICO PIKE PYPY PYPY3 PY_NBC RUST SCM guile CHICKEN SED TCL WHITESPACE |
Աղբյուրը. | East Sibirean QF 2014.E |