Pagini recente » Cod sursa (job #1636977) | Cod sursa (job #1217126) | Cod sursa (job #119329) | Cod sursa (job #2539238) | Cod sursa (job #2524593)
#include <fstream>
#include <vector>
#define MOD 1000007
#define X first
#define Y second
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int n,i,v[1030];
vector<pair<int,int> > f[1000010];
long long sol,j,t,L;
int main(){
fin>>n>>L;
for(i=1;i<=n;i++)
fin>>v[i];
f[(v[1]+v[2])%MOD].push_back({v[1]+v[2],1});
for(i=3;i<n;i++){
for(j=i+1;j<=n;j++){
for(int k=0;k<f[(L-(v[i]+v[j]))%MOD].size();k++)
sol+=f[(L-(v[i]+v[j]))%MOD][k].Y;
}
for(t=1;t<i;t++)
if(!f[(v[t]+v[i])%MOD].size())
f[(v[t]+v[i])%MOD].push_back({v[t]+v[i],1});
else
for(int k=0;k<f[(v[t]+v[i])%MOD].size();k++)
f[(v[t]+v[i])%MOD][k].Y++;
}
fout<<sol;
return 0;
}