首先一定是从第一个活动开始(再往前就没意义了)
然后求间隔时间的gcd
最后从可以选的地方选
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll gcd(ll a,ll b){
return b?gcd(b,a%b):a;
}
int main() {
int n, m; cin >> n >> m;
ll ori, lat; scanf("%I64d %I64d", &ori, &lat);
ll res = lat - ori;
ll sto = ori;
if (res != 1) {
for (int i = 3; i <= n; i++) {
ori = lat;
scanf("%I64d", &lat);
if (lat - ori == 1) {
res = 1;
break;
}
res = gcd(res, lat - ori);
}
}
ll inp;
for (int i = 1; i <= m; i++) {
scanf("%I64d", &inp);
if (res%inp == 0) {
cout << "YES" << endl;
printf("%I64d %d", sto, i);
return 0;
}
}
cout << "NO" << endl;
return 0;
}