#include<iostream>
#include<set>
using namespace std;
int main(){
long long n,Q;
cin>>n>>Q;
set<long long> dp;
int r;
for(int i=0;i<n;i++){
long long x;
cin>>x;
if(i==0) r=x;
dp.insert(x);
}
while(Q--){
long long t;
cin>>t;
if(dp.find(r/t)!=dp.end()) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
return 0;
}
根据高中物理可知,紧邻的齿轮的线速度是等大的,由此我们可以得出:
n1r1=n2r2=m3*r3=...
这样,我们只需要找到给出的这组数据里是否具有这个元素,即最左端齿轮的半径r/倍数q。
在我的代码中我用了c++的迭代器set,我通过不断向set里压入数据,在后面的讯问中,计算出查找元素的值,然后利用set内部的find函数来查找是否存在,如果存在输出YES,否则NO。
以上是我的代码思路,但我在提交后,出现了如下错误:
Wrong Answer.wrong answer On line 1 column 1, read Y, expected N.
有大神可以帮我看看为什么吗?