初始时,你所在的位置为 a =0,你想要去c =d位置。
给定n个整数a1, a2 ..., .n ,表示每次你可以往左移动a;个单位或往右移动a;个单位。请问,最终能否到达c = d位置?能则输出Yes,不能输出No。
- 找到6,8能去到的最小距离,在看d是不是最小距离的倍数
输入格式
输入共两行:
第一行,两个整数n,d;
第二行,n个正整数α1, a2,.., n o
输出格式
输出能否达到最终目标位置。
输入输出样例
输入#1
2 -4
6 8
Yes
输入#2
2 5
6 8
No
#include <iostream>
#include <vector>
#include<algorithm>
#include<math.h>
using namespace std;
int gcd(int a,int b) {
return b?gcd(b,a%b):a;
}
int main() {
int n,d;
int ans=0;
cin>>n>>d>>ans;
int a;
for(int i=1; i<n; i++) {
cin>>a;
ans=gcd(ans,a);
}
if(d%ans==0){
cout<<"Yes";
}
else
cout<<"No";
return 0;
}