Pagini recente » Rating Vitel Silviu-Constantin (ThEK) | Cod sursa (job #284471) | Cod sursa (job #1724643) | Cod sursa (job #1639659) | Cod sursa (job #2843812)
#include <bits/stdc++.h>
#define MOD 604801
/// TONI BO$$ was here
/// #MLC
using namespace std;
struct node
{
int val;
int p2;
node *next;
}v[MOD], nodes[1048577];
int m;
int c[1025];
int main()
{
int n, l, i, j, m, sum;
freopen("oite.in","r",stdin);
freopen("oite.out","w",stdout);
scanf("%d%d" ,&n, &l);
for(i = 1; i <= n; i++)
scanf("%d", &c[i]);
int rez = 0;
node *point;
for(i = 1; i < n; i++)
for(j = i + 1; j <= n; j++)
{
++m;
nodes[m].next = v[(c[i] + c[j]) % MOD].next;
v[(c[i] + c[j]) % MOD].next = &nodes[m];
nodes[m].val = c[i] + c[j];
nodes[m].p2 = j;
sum = l - c[i] - c[j];
point = v[sum % MOD].next;
if(sum < 0)
continue ;
while(point != nullptr)
{
if(point->val == sum && point->p2 < i)
rez++;
point = point->next;
}
}
printf("%d\n", rez);
return 0;
}