GCD Table
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

考虑一个大小为 的表,对于所有 是数 的最大公约数。

你有一个正整数序列。我们说这个序列出现在表 中,如果它与某行中的连续元素重合,从某个位置开始。更正式地,这样的数字 应该存在:对于所有

确定序列 是否出现在表 中。

输入描述:

第一行包含三个空格分隔的整数
第二行包含 个空格分隔的整数

输出描述:

如果给定的序列出现在表 G 中,则打印单个单词“YES”,否则打印“NO”,都不带引号。
示例1

输入

复制
100 100 5
5 2 1 2 1

输出

复制
YES

说明

\ G 的第10行为\ \{1, 2, 1, 2, 5, 2, 1, 2, 1, 10,...\}。从第5到第9的元素与序列\ a 重合。
示例2

输入

复制
100 8 5
5 2 1 2 1

输出

复制
NO
示例3

输入

复制
100 100 7
1 2 3 4 5 6 7

输出

复制
NO

备注:

原题链接:https://codeforces.com/problemset/problem/338/D