Cod sursa(job #2600466)

Utilizator betybety bety bety Data 12 aprilie 2020 17:21:24
Problema Oite Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <map>
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
int v[1030];
map<int,long long> m;
int main()
{
    int n,l,sum;
    long long rasp=0;
    cin>>n>>l;
    for(int i=1;i<=n;++i)
        cin>>v[i];
    for(int i=1;i<=n-1;++i)
    for(int j=i+1;j<=n;++j)
    if(v[i]+v[j]<=l)
    {
        sum=v[i]+v[j];
        if(m.find(l-sum)!=m.end())
            rasp+=m[l-sum];
        m[sum]++;
    }
    for(int i=1;i<=n;++i)
    if(m.find(l-2*v[i])!=m.end())
        rasp-=m[l-2*v[i]];
    for(int i=1;i<=n;++i)
    for(int j=1;j<=n;++j)
    if(i!=j and 3*v[i]+v[j]==l)
        rasp++;
    cout<<rasp/3;
    return 0;
}