Pagini recente » Cod sursa (job #3126193) | Cod sursa (job #1912177) | Cod sursa (job #3143201) | Cod sursa (job #370371) | Cod sursa (job #32195)
Cod sursa(job #32195)
#include <map>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#define FOR(i, N, M) for (int i = (int)(N); i <= (int)(M); ++i)
#define REP(i, N) for (int i = 0; i < (int)(N); ++i)
typedef long long LL;
using namespace std;
map<int, int> M;
map<int, int> :: iterator it;
int N, L, a[1024];
int main(void)
{
freopen("oite.in", "r", stdin);
freopen("oite.out", "w", stdout);
scanf("%d %d", &N, &L);
REP(i, N) scanf("%d", &a[i]);
LL Ans = 0;
REP(i, N)
{
FOR(j, i+1, N-1)
Ans += M[L-a[i]-a[j]];
FOR(j, 0, i-1)
{
if ((it = M.find(a[i]+a[j])) == M.end())
M[a[i]+a[j]] = 1;
else
++ it->second;
}
}
printf("%lld\n", Ans);
return 0;
}