Pagini recente » Cod sursa (job #2514112) | Cod sursa (job #3157983) | Cod sursa (job #553867) | Cod sursa (job #3188374) | Cod sursa (job #2977004)
#include <fstream>
#include <vector>
#define mod 999995
#define ll long long
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int c;
ll int l, oi[1100], rez;
vector<int> m[1000001];
vector<short> v[1000001];
int main()
{
fin >> c >> l;
for (int i = 1; i <= c; i++)
{
fin >> oi[i];
}
for (int i = 1; i < c; i++)
{
for (int j = i + 1; j <= c; j++)
{
int val = (l - oi[i] - oi[j]);
int rest = val % mod;
if (val < 0)
continue;
for (int k = 0; k < m[rest].size(); k++)
{
if (m[rest][k] == l - oi[i] - oi[j])
rez += v[rest][k];
}
}
for (int j = 1; j < i; j++)
{
int rest = (oi[i] + oi[j]) % mod;
int ok = 0;
for (int k = 0; k < m[rest].size(); k++)
{
if (m[rest][k] == oi[i] + oi[j])
{
ok = 1;
v[rest][k]++;
break;
}
}
if (ok == 0)
m[rest].push_back(oi[i] + oi[j]);
v[rest].push_back(1);
}
}
fout << rez;
return 0;
}