Cod sursa(job #2600527)

Utilizator betybety bety bety Data 12 aprilie 2020 19:25:43
Problema Oite Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <algorithm>
#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];
    sort(v+1,v+n+1);
    for(int i=1;i<=n-1;++i)
    for(int j=i+1;j<=n and v[i]+v[j]<=l;++j)
    {
        sum=v[i]+v[j];
        if(m.find(l-sum)!=m.end())
            rasp+=m[l-sum];
        m[sum]++;
        if(3*v[i]+v[j]==l)
            rasp++;
        if(v[i]+3*v[j]==l)
            rasp++;
    }
    for(int i=1;i<=n;++i)
    if(m.find(l-2*v[i])!=m.end())
        rasp-=m[l-2*v[i]];
    cout<<rasp/3;
    return 0;
}