Cod sursa(job #2641760)

Utilizator stefantagaTaga Stefan stefantaga Data 12 august 2020 17:21:37
Problema Patrate 3 Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#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;
}