Cod sursa(job #542916)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 27 februarie 2011 10:34:46
Problema Oite Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdio.h>
#include <vector>
using namespace std;

vector <int> h[666100];
vector <int> hx[666100];
vector <int> hy[666100];

int c,l,i,v[1050],j,k,cont;

int main()
{
	freopen("oite.in","r",stdin);
	freopen("oite.out","w",stdout);
	scanf("%d%d",&c,&l);
	for(i=1;i<=c;i++){
		scanf("%d",&v[i]);
	}
	for(i=1;i<=c;i++){
		for(j=i+1;j<=c;j++){
			int z=(v[i]+v[j])%666013;
			h[z].push_back(v[i]+v[j]);
			hx[z].push_back(i);
			hy[z].push_back(j);
		}
	}
	for(i=1;i<=c;i++){
		for(j=i+1;j<=c;j++){
			int zz=(l-v[i]-v[j])%666013;
			for(k=0;k<h[zz].size();k++){
				if(hx[zz][k]!=i && hx[zz][k]!=j && hy[zz][k]!=i && hy[zz][k]!=j && h[zz][k]+v[i]+v[j]==l){
					//printf("%d %d %d %d\n",i,j,hx[zz][k],hy[zz][k]);
					cont++;
				}
			}
		}
	}
	printf("%d",cont/6);
	return 0;
}