Pagini recente » Cod sursa (job #42594) | Cod sursa (job #1246655) | Cod sursa (job #2526187) | Cod sursa (job #2903007) | Cod sursa (job #1209911)
#include<stdio.h>
#include<vector>
#include<algorithm>
#include <fstream>
int n,i,j,k,v[1100],l,leftover,po;
const int maxp=9013;
std::vector<int> partial_sum[maxp],hx[maxp];
int main()
{
std::ifstream in("oite.in");
std::ofstream out("oite.out");
in >> n >> l;
for (i=1; i<=n; ++i) {
in >> v[i];
}
std::sort(v+1,v+n+1);
for(i=1;i<n;++i) {
for(j=i+1;j<=n;++j)
{
po=(v[i]+v[j])%maxp;
partial_sum[po].push_back((v[i]+v[j]));
hx[po].push_back(i);
}
}
int count = 0;
for(i=1;i<n&&v[i]+v[1]<l/2;++i) {
for(j=i+1;j<=n&&v[j]+v[i]<l/2;++j)
{
if(l>v[i]+v[j])
{
leftover=(l-v[i]-v[j])%maxp;
for(k=0;k<partial_sum[leftover].size();++k) {
if(j<hx[leftover][k]&&partial_sum[leftover][k]+v[i]+v[j]==l) {
++count;
}
}
}
}
}
out << count;
return 0;
}