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

Задача . B. Цепные дроби


Цепной дробью высоты n называется дробь вида . Вам даны два рациональных числа, одно представлено в виде , а второе в виде конечной цепной дроби высоты n. Проверьте, равны ли они.

Входные данные

В первой строке через пробел записаны два целых числа p, q (1 ≤ q ≤ p ≤ 1018) — числитель и знаменатель первой дроби.

Во второй строке записано целое число n (1 ≤ n ≤ 90) — высота второй дроби. В третьей строке через пробел записаны n целых чисел a1, a2, ..., an (1 ≤ ai ≤ 1018) — цепная дробь.

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

Выходные данные

Выведите «YES», если эти дроби равны и «NO» в противном случае.

Примечание

В первом примере .

Во втором примере .

В третьем примере .


Примеры
Входные данныеВыходные данные
1 9 4
2
2 4
YES
2 9 4
3
2 3 1
YES
3 9 4
3
1 2 4
NO

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

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