Cod sursa(job #631264)

Utilizator mihai0110Bivol Mihai mihai0110 Data 7 noiembrie 2011 17:00:29
Problema Oite Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <vector>

#define MOD 666013

using namespace std;

typedef struct sheep {
	long wool, index;
} Sheep;

vector<Sheep> H[MOD];
long A[1024];

int main(void) {
	freopen("oite.in","r",stdin);
	//freopen("oute.out","w",stdout);
	
	long L, n;
	int index;
	Sheep s;
	scanf("%ld%ld", &n, &L);

	for(int i = 0; i < n; i++) {
		scanf("%ld", &A[i]);
		s.wool = A[i];
		s.index = i;
		H[A[i] % MOD].push_back(s);
	}
	
	int sol = 0;
	for(int i = 0; i < n; i++)
		for(int j = i + 1; j < n; j++)
			for(int k = j + 1; k < n; k++) {
				index = (L - A[i] - A[j] - A[k]) % MOD;
				for(int l = 0; l < H[index].size(); l++) 
					if (H[index][l].wool == L - A[i] - A[j] - A[k] &&
					    H[index][l].index > k)
					    	sol++;
			}
	
	printf("%d\n", sol);
	return 0;
}