Pagini recente » Cod sursa (job #55312) | Cod sursa (job #3269971) | Cod sursa (job #1015498) | Cod sursa (job #2582819) | Cod sursa (job #58236)
Cod sursa(job #58236)
#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<int> C;
hash_map<unsigned,unsigned> M;
hash_map<unsigned,unsigned> W;
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
int t;
scanf("%d%d", &N, &L);
for ( int i = 1; i <= N; i++ )
{
scanf("%d", &t);
if ( !W[t] ) C.push_back(t), W[t] += 1;
else W[t] += 1;
}
for ( int i = 2; i < C.size(); i++ )
{
for ( int j = 0; j < i-1; j++ )
{
M[C[i-1]+C[j]] += W[C[i-1]] * W[C[j]] - 1;
}
int K = L - C[i];
for ( int j = i+1; j < C.size(); j++ )
total += M[K-C[j]];
}
printf("%d", total);
}