Nu aveti permisiuni pentru a descarca fisierul grader_test8.ok
Cod sursa(job #339979)
Utilizator | Data | 12 august 2009 14:20:25 | |
---|---|---|---|
Problema | Oite | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.75 kb |
#include<fstream>
#define p 500009
using namespace std;
struct nod{
int inf,x,y;
nod *urm;};
nod *hash[500009];
void add(int val,int st ,int dr)
{int h=val%p;
nod *q=new nod;
q->inf=val;q->x=st;q->y=dr;q->urm=hash[h];
hash[h]=q;}
int main()
{int c,l,a[1025],s;
ifstream in("oite.in");
ofstream out("oite.out");
in>>c>>l;
for(int i=1;i<=c;i++)
in>>a[i];
for(int i=1;i<c;i++)
for(int j=i+1;j<=c;j++)
{s=a[i]+a[j];
add(s,i,j);
}
int contor=0;
for(int i=1;i<c;i++)
for(int j=i+1;j<=c;j++)
{s=l-a[i]-a[j];
int h=s%p;
for(nod *hh=hash[h];hh;hh=hh->urm)
if(hh->inf==s && i!=hh->x && i!=hh->y && j!=hh->x && j!=hh->y) contor++;
}
out<<contor;
return 0;}