Cod sursa(job #2233259)

Utilizator PopeangaMihneaPopeanga Mihnea- Stefan PopeangaMihnea Data 22 august 2018 18:36:26
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("oite.in");
ofstream fout("oite.out");

const int MOD=50003;
vector<int>H[MOD+1];
int n, l, sol;
int x[1026];

inline void Find(int x)
{
    int poz=x%MOD;
    vector<int>::iterator it;
    for(it=H[poz].begin(); it!=H[poz].end(); ++it)
        if(*it==x) ++sol;
}

inline void Insert(int x)
{
    int poz=x%MOD;
    H[poz].push_back(x);
}

int main()
{
    fin>>n>>l;
    for(int i=1; i<=n; ++i) fin>>x[i];
    sort(x+1, x+n+1);
    for(int i=1; i<=n; ++i)
    {
        for(int j=i+1; j<=n; ++j) if(l-x[i]-x[j]>=0) Find(l-x[i]-x[j]);
        for(int j=1; j<i; ++j) Insert(x[i]+x[j]);
    }
    fout<<sol<<"\n";
    return 0;
}