Pagini recente » Cod sursa (job #3166726) | Cod sursa (job #3179894) | Cod sursa (job #2707646) | Cod sursa (job #1833175) | Cod sursa (job #3221968)
#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, M1= 666013, M2 = 797161;
vvi G1(M1), G2(M2);
void add(int x){G1[x % M1].pb(x);G2[x % M2].pb(x);}
bool find(int x){return find(all(G1[x % M1]), x) != G1[x % M1].end() &&
find(all(G2[x % M2]), x) != G2[x % M2].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;
}