Cod sursa(job #389335)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 1 februarie 2010 14:33:24
Problema Oite Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#include <set>

using namespace std;

#define file_in "oite.in"
#define file_out "oite.out"


#define Nmax 5297378

int n,s,v[Nmax],nr;
set<int> G;



int main()
{
	int i,j;
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d", &n, &s);
	for (i=1;i<=n;++i)
		scanf("%d", &v[i]);
	
	for (i=3;i<n;++i)
		 for (j=i+1;j<=n;++j)
			   G.insert(v[i]+v[j]);
	nr=0;
	for (j=2;j<n-1;++j)
	{
		for (i=1;i<j;++i)
			 nr+=G.count(s-v[i]-v[j]);
		for (i=j+2;i<=n;++i)
			 G.erase(v[j+1]+v[i]);
	}
	
	printf("%d\n", nr);
		 
		 
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}