Pagini recente » Cod sursa (job #2364891) | Cod sursa (job #583480) | Cod sursa (job #1299263) | Cod sursa (job #488686) | Cod sursa (job #2641760)
#include <bits/stdc++.h>
using namespace std;
const int nmax=2005;
const int mod=100007;
int a[nmax];
int dp[nmax][nmax];
vector< pair<int,int> > H[mod];
int Find(int x){
if(x<0)
return 0;
int where=x%mod;
for(auto element: H[where])
if(element.first==x)
return element.second;
return 0;
}
int main()
{
ifstream f("progr2.in");
ofstream g("progr2.out");
int t=0;
f>>t;
while(t--){
int ans=0,n;
f>>n;
for(int i=1;i<=n;i++){
f>>a[i];
H[a[i]%mod].push_back({a[i],i});
}
for(int i=1;i<=n;i++){
for(int j=i+1;j<=n;j++){
dp[i][j]=(1+dp[Find(2*a[i]-a[j])][i]);
ans+=dp[i][j];
}
}
for(int i=1;i<=n;i++){
H[a[i]%mod].clear();
}
g<<ans<<'\n';
}
return 0;
}