Cod sursa(job #542988)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 27 februarie 2011 12:59:31
Problema Oite Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <stdio.h>
#include <vector>
#define modi 6829
using namespace std;


//vector <int> hy[1000007];

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

vector <int> h[modi+3];
vector <int> hx[modi+3];

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++){
			if(v[i]+v[j]<l){
			int z=(v[i]+v[j])%modi;
			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++){
			if(v[i]+v[j]<=l){
			int zz=(l-v[i]-v[j])%modi;
			int nn=h[zz].size();
			for(k=0;k<nn;k++){
				if(j<hx[zz][k] && h[zz][k]+v[i]+v[j]==l){
					//printf("%d %d %d %d\n",i,j,hx[zz][k],hy[zz][k]);
					//printf("%d %d\n",h[zz].size(),zz);
					cont++;
				}
			}
			}
		}
	}
	printf("%d",cont);
	return 0;
}