在输入的n个正整数中,判断能否找到三个数总和为m,这三个数可以重复(即n个数中的每个数都可以使用多次)。如果可以找到,则输出为Yes。若找不到则输出No。输入的第一行为n和m两个整数,第二行为n个数字。其中n<=1000,数字绝对值不超过2000。
输入第一行为n和m两个整数,第二行为n个正整数数字,数字不超过2000。 其中n<=1000。m<=2000。
输出Yes或者No。
代码示例:
#include<bits/stdc++.h>
using namespace std;
int a[1000],b[2001],n,m;
bool cnt=0;
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)cin>>a[i],b[a[i]]=1;
for(int j=0;j<n;j++)
for(int k=0;k<n;k++){
if(m-a[j]-a[k]>2000||m-a[j]-a[k]<0) continue;
if(b[m-a[j]-a[k]]==1){cnt=1;break;}
}
cout<<(cnt?"Yes":"No")<<endl;
return 0;
}