Pagini recente » Cod sursa (job #3147076) | Cod sursa (job #906320) | Cod sursa (job #2094869) | Cod sursa (job #921591) | Cod sursa (job #1209912)
#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");
std::ios::sync_with_stdio(false);
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;
}