Pagini recente » Cod sursa (job #228273) | Cod sursa (job #2163919) | Cod sursa (job #2537782) | Cod sursa (job #1370662) | Cod sursa (job #3221964)
#include <bits/stdc++.h>
#define FOR(i, a, b) for(int i = a; i <= b; ++i)
#define FORR(i, a, b) for(int i = a; i >= b; --i)
#define vi vector<int>
#define pb push_back
#define vvi vector<vi>
#define pii pair<int, int>
#define ff first
#define ss second
#define all(v) (v).begin(), (v).end()
using namespace std;
const string TASK("oite");
ifstream fin(TASK + ".in");
ofstream fout(TASK + ".out");
#define cin fin
#define cout fout
const int N = 1109, M = 666013;
vvi G(M);
void add(int x){G[x % M].pb(x);}
bool find(int x){return find(all(G[x % M]), x) != G[x % M].end();}
int n, l, a[N];
int main()
{
cin >> n >> l;
FOR(i, 1, n)cin >> a[i];
int ans = 0;
FOR(i, 1, n)
{
FOR(j, i + 1, n)
if(a[i] + a[j] <= l && find(l - a[i] - a[j]))
ans ++;
FOR(j, 1, i - 1)add(a[i] + a[j]);
}
cout << ans << '\n';
return 0;
}