Pagini recente » Cod sursa (job #1338344) | Cod sursa (job #1913220) | Cod sursa (job #919506) | Cod sursa (job #2602128) | Cod sursa (job #2438608)
#include <bits/stdc++.h>
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
const int mod=9973;
int c,a[1025],l,k,ans,s;
vector<pair<int,int>> v[10000];
void add(int n)
{
int r=n%mod;
int sz=v[r].size();
for(int i=0;i<sz;i++)
if(n==v[r][i].first)
{
v[r][i].second++;
return;
}
v[r].push_back({n,1});
}
int find(int n)
{
int r=n%mod;
int sz=v[r].size();
for(int i=0;i<sz;i++)
if(n==v[r][i].first) return v[r][i].second;
return 0;
}
int main()
{
in>>c>>l;
for(int i=1;i<=c;i++) in>>a[i];
for(int i=2;i<=c;i++)
{
for(int j=i+1;j<=c;j++)
if(a[i]+a[j]<=l) ans+=find(l-a[i]-a[j]);
for(int j=i-1;j>0;j--)
add(a[i]+a[j]);
}
out<<ans;
}