Cod sursa(job #529582)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 5 februarie 2011 14:53:28
Problema Oite Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

const char iname[] = "oite.in";
const char oname[] = "oite.out";
const int nmax    = 1024;
const int  mod     = 16384;

using namespace std;

ifstream fin(iname);
ofstream fout(oname);

int c, buildsum, i, j, n, sol;
int oaie[nmax];
vector<pair <int, int> > H[mod];

int county(int ceva)
{	
	int sol = 0;
	for(int k = 0; k < H[ceva % mod].size(); k++)
	{	
		if(i < H[ceva % mod][k].first &&  H[ceva % mod][k].second < j )
			++sol;
	}
	return sol;
}


int main()
{
	fin >> c >> buildsum;
	for(i = 1; i <= c; i ++)
		fin >> oaie[i];
	
	for(i = 1; i <= c; i ++)
		for(j = i + 1; j <= c; j ++)
			H[(oaie[i] + oaie[j]) % mod].push_back(make_pair(i, j));
	
	for(i = 1; i <= c; i ++)
		for(j = i + 1; j <= c; j ++)
			sol = sol + county(buildsum - oaie[i] - oaie[j]);
	
	fout << sol;
	return 0;
}