Cod sursa(job #474466)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 3 august 2010 21:09:30
Problema Oite Scor 10
Compilator cpp Status done
Runda easycontest Marime 0.77 kb
#include<algorithm>
#include<vector>
using namespace std;
#define N_MAX 1030

int n,l,i,j,k,sol;
int a[N_MAX];
#define H 9001

vector <int> hash[H];
vector <int> ::iterator it;

int main()
{
	freopen("oite.in","r",stdin);
	freopen("oite.out","w",stdout);
	
	scanf("%d%d",&n,&l);

	for(i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		hash[a[i]%H].push_back(i);
	}
	for(i=1;i<=n;i++)
	{
		int s1=a[i];
		if(s1>l)
			break;
		for(j=i+1;j<=n;j++)
		{
			int s2=s1+a[j];
			if(s2>l)
				break;
			for(k=j+1;k<=n;k++)
			{
				int s3=s2+a[k];
				if(s3>l)
					break;
				int s=l-s3;
				int hs=s%H;
				for(it=hash[hs].begin();it!=hash[hs].end();it++)
					if(a[*it]==s)
						if((*it)>k)
							++sol;
			}
		}
	}
		
	printf("%d\n",sol);

	return 0;
}