Cod sursa(job #598328)

Utilizator ChallengeMurtaza Alexandru Challenge Data 25 iunie 2011 14:22:41
Problema Oite Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <map>

using namespace std;

const char InFile[]="oite.in";
const char OutFile[]="oite.out";
const int MaxN=1024;

ifstream fin(InFile);
ofstream fout(OutFile);

int N,S,V[MaxN],sol;
map<int,int> m;

int main()
{
	fin>>N>>S;
	for(register int i=0;i<N;++i)
	{
		fin>>V[i];
	}
	fin.close();

	for(register int i=2;i<N;++i)
	{
		for(register int j=i+1;j<N;++j)
		{
			++m[V[i]+V[j]];
		}
	}

	for(register int i=1;i<N-2;++i)
	{
		for(register int j=0;j<i;++j)
		{
			sol+=m[S-V[i]-V[j]];
		}
		for(register int j=i+2;j<N;++j)
		{
			--m[V[i+1]+V[j]];
		}
	}

	fout<<sol;
	fout.close();
	return 0;
}