#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a[110]={},n1=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
if(a[i]+a[j]==a[k]){
n1++;
}
}
}
}
cout<<n1;
}
思路是这样,先存进数组,然后排序,开三重循环,i=0时,一开始j=1,k=2,就这样往后面找嘛,找到了就计数器就加一。
但是,为什么这样不能ac啊,感觉没什么问题啊(www)求救啊
6094 106 5958 877 3352 8959 292 9253 3860 448 5709 8295 4667 2588 3663 2486 1129 8870 3126 6203 727 4316 6541 9689 8818 2119 7331 7598 1879 7303 1100 8740 4567 2649 2373 7505 5848 4337 9953 4436 8395 8273 1028 4449 3363 6254 7856 6710 8422 3833 5690 6664 6326 2550 119 2075 3475 9024 3239 8889 807 543 8103 1441 9731 3873 5194 9557 3256 6245 3266 2777 4552 2390 8550 4777 9701 5694 9133 6736 2586 298 3695 1992 2958 3831 6905 8134 989 6292 8967 118 8442 1765 931 4760 5945 1703 6262 1671
第二个数据点,正确是22,我是26,看了半天没发现问题......