Pagini recente » Cod sursa (job #94547) | Cod sursa (job #547560) | Cod sursa (job #1370876) | Cod sursa (job #2048248) | Cod sursa (job #2568239)
#include <iostream>
#include <vector>
#define MOD 100003
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
int n, s, l, sol, q;
int v[2005];
vector <pair <int, int> > h[MOD];
int main()
{
cin >> n >> l;
for (int i=1; i<=n; i++)
{
cin >> v[i];
}
for (int i=1; i<n; i++)
{
for (int j=i+1; j<=n; j++)
{
s = l-v[i]-v[j];
for (q=0; q<h[s%MOD].size(); q++)
{
if (h[s%MOD][q].first == s)
{
sol=sol+h[s%MOD][q].second;
break;
}
}
}
for (int j=1; j<i; j++)
{
s=v[i]+v[j];
for (q=0; q<h[s%MOD].size(); q++)
{
if (h[s%MOD][q].first == s)
{
h[s%MOD][q].second++;
break;
}
}
if (q == h[s%MOD].size())
{
h[s%MOD].push_back({s, 1});
}
}
}
cout << sol;
return 0;
}