Pagini recente » Cod sursa (job #590088) | Cod sursa (job #523765) | Cod sursa (job #1829297) | Cod sursa (job #590732) | Cod sursa (job #58277)
Cod sursa(job #58277)
#include <stdio.h>
#include <ext/hash_map>
#include <vector>
using namespace std;
#define in "oite.in"
#define out "oite.out"
#define dim 1025
using namespace __gnu_cxx;
int N, L, total=0;
vector<unsigned> V;
hash_map<unsigned,unsigned> M;
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d%d", &N, &L);
V.resize(N+1);
for ( int i = 1; i <= N; i++ )
{
scanf("%u", &V[i]);
}
sort(V.begin()+1,V.end());
for ( int i = 3; i <= N; i++ )
{
for ( int j = 1; j < i-1; j++ )
M[V[i-1]+V[j]]++;
int K = L - V[i];
for ( int j = i+1; j <= N ; j++ )
{
if ( K - V[j] >= 0 ) total += M[K-V[j]];
else break;
}
}
printf("%d", total);
}