现在是2020/02/27日,目前这道题标程的数据有问题,有个条件漏了,见下面
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,k;
cin >> n >> k;
vector<int> a(n);
for(int i=0;i<n;i++)
cin >> a[i];
if(n<3)
return 0;
for(int i=0;i<=n-3;i++) {
// 注意外层循环也要跳过数字相同的情况
if(i>0 && a[i]==a[i-1])
continue;
int left = i+1;
int right = n-1;
int k2 = k-a[i];
while(left < right) {
if(a[left]+a[right] < k2)
left++;
else if(a[left]+a[right]>k2)
right--;
else {
// 若要通过这题,需要把这里去掉left==i+1这个条件
if(left==i+1 || a[left]!=a[left-1])
cout << a[i] << " " << a[left] << " " << a[right] << endl;
left++;
right--;
}
}
}
return 0;
} 
京公网安备 11010502036488号