解题:利用c++的multiset的count和erase进行解题
相同类型的题目:https://www.cnblogs.com/cstdio1/p/11377028.html
c++代码如下:
#include <bits/stdc++.h> using namespace std; const int N=10000+5; int n,k,len=0; int a[N]; multiset<int> s;//用multiset是因为有重复元素的存在 int main() { while(1){ scanf("%d",&n);//注意数据的输入格式 char c=getchar(); a[len]=n; s.insert(a[len]); len++; if(c==',')break; } cin>>k; sort(a,a+len); for(int i=0;i<len;i++){ s.erase(s.find(a[i])); for(int j=i+1;j<len;j++){ s.erase(s.find(a[j])); if(s.count(k-a[i]-a[j])){ cout<<"True"<<endl; return 0; } s.insert(a[j]); } s.insert(a[i]); }cout<<"False"<<endl; return 0; }