题意: t组输入, 每组给你n个数字, 问你这n个数字中能找出多少个等差三元组.
解体思路: 遍历 枚举
代码:
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
typedef long long ll;
using namespace std;
const int mx=2e5+10;
unordered_map<int,int>s;
int a[mx];
int main(){
int t,n;
scanf("%d",&t);
while(t--){
ll ans=0;
scanf("%d",&n);
s.clear();
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(s[a[i]])
ans+=s[a[i]];
if(i==n)
break;
for(int j=1;j<i;j++)
s[2*a[i]-a[j]]++;
}
printf("%lld\n",ans);
}
return 0;
}