Pagini recente » Cod sursa (job #2697540) | Cod sursa (job #1657142) | Cod sursa (job #2473698) | Cod sursa (job #1186351) | Cod sursa (job #2416045)
#include <bits/stdc++.h>
#define Nmax 1030
#define ll long long
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int N, L;
int A[Nmax];
vector < pair <int, int> > H[1003491];
ll ans = 0;
int getKey(int P)
{
return P % 1003491;
}
int CNT(int P)
{
int key = getKey(P);
for(auto it : H[key])
if(it.first == P)
return it.second;
return 0;
}
void ins(int P, int v)
{
int key = getKey(P);
for(auto &it : H[key])
if(it.first == P)
{
it.second += v;
return;
}
H[key].push_back(make_pair(P, v));
}
int main()
{
fin >> N >> L;
for(int i = 1; i <= N; i++)
fin >> A[i];
for(int i = 1; i <= N; i++)
{
for(int j = i + 1; j <= N; j++)
if(L >= A[i] + A[j])
ans += CNT(L - A[i] - A[j]);
for(int j = i - 1; j >= 1; j--)
ins(A[i] + A[j], 1);
}
fout << ans << "\n";
return 0;
}