Cod sursa(job #530582)

Utilizator borsoszalanBorsos Zalan borsoszalan Data 7 februarie 2011 23:42:34
Problema Oite Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include<stdio.h>
#include<unordered_map>

using namespace std;
unordered_map <int, int> m;

int n,l, a[1100], i,j;

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]);
	int cnt = 0;
	for (i = 3; i <= n-1; i++)
    for (j = i+1; j <= n; ++j)
         m[a[i]+a[j]]++;
    for(j=2;j<=n-2;++j)
        {
         for(i=1;i<j;++i)
          cnt+=m[l-a[i]-a[j]];
         for(i=j+2;i<=n;++i)
          if(m[a[j+1]+a[i]])
			  m[a[j+1]+a[i]]--;
        }
	printf("%d", cnt);
	return 0;
}