Pagini recente » Cod sursa (job #1499834) | Cod sursa (job #2189187) | Cod sursa (job #1017111) | Cod sursa (job #2648250) | Cod sursa (job #2546445)
#include <bits/stdc++.h>
#define pii pair <int, int>
#define f first
#define s second
#define mp make_pair
using namespace std;
ifstream fin ("oite.in");
ofstream fout ("oite.out");
const int key = 666013;
int n, l, i, j, ans;
vector <int> v(1030);
vector <pii> has[key + 10];
void add(int val)
{
if(val > l) return;
for(int i=0; i<has[val%key].size(); i++)
if(has[val%key][i].f == val)
{
has[val%key][i].s ++;
return;
}
has[val%key].push_back(mp(val, 1));
}
int cati(int val)
{
if(val < 0) return;
for(auto it : has[val%key])
if(it.f == val) return it.s;
return 0;
}
int main()
{
fin >> n >> l;
for(i=1; i<=n; i++)
fin >> v[i];
for(i=1; i<=n; i++)
{
for(j=i+1; j<=n; j++)
ans += cati(l - v[i] - v[j]);
for(j=1; j<i; j++)
add(v[i] + v[j]);
}
fout << ans;
return 0;
}