Cod sursa(job #2638802)

Utilizator loraclorac lorac lorac Data 29 iulie 2020 22:47:54
Problema Oite Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
typedef long long ll;
unordered_map<int,int> m;
int v[1030],n,l,s;
ll ans;
int main()
{
    in>>n>>l;
    for(int i=1;i<=n;++i)
    {
        in>>v[i];
        for(int j=1;j<i;++j)
        {
            s=v[i]+v[j];
            if(m.find(l-s)!=m.end())
                ans+=1LL*m[l-s];
            m[s]++;
            if(3*v[i]+v[j]==l)
                ans++;
            if(3*v[j]+v[i]==l)
                ans++;
        }
    }
    for(int i=1;i<=n;++i)
    {
        s=l-2*v[i];
        if(m.find(s)!=m.end())
            ans-=1LL*m[s];
    }
    out<<ans/3<<'\n';
    return 0;
}