Pagini recente » Cod sursa (job #1161743) | Cod sursa (job #989797) | Cod sursa (job #815923) | Cod sursa (job #182427) | Cod sursa (job #979980)
Cod sursa(job #979980)
#include <fstream>
#define N 1025
#define MOD 666013
using namespace std;
FILE *fin=fopen("oite.in", "r"), *fout=fopen("oite.out", "w");
struct pc
{
int n;
pc *next;
} *hash[MOD];
int a[N];
void hadd(int k)
{
int x=k%MOD;
pc *p=new pc;
p->n=k;
p->next=hash[x];
hash[x]=p;
}
int hfind(int k)
{
int x=k%MOD;
pc *p=hash[x];
while(p)
{
if(p->n==k) return 1;
p=p->next;
}
return 0;
}
int main()
{
int n, i, j, sol, m;
fscanf(fin, "%d%d", &n, &m);
for(i=1;i<=n;i++)
{
fscanf(fin, "%d", &a[i]);
}
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
sol+=hfind(m-a[i]-a[j]);
}
for(j=i-1;j;j--)
{
hadd(a[i]+a[j]);
}
}
fprintf(fout, "%d", sol);
}