现在是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; }