Pagini recente » Cod sursa (job #2482639) | Cod sursa (job #2177363) | Cod sursa (job #54684) | Cod sursa (job #2654178) | Cod sursa (job #2571024)
#include <fstream>
#include <map>
using namespace std;
ifstream cin("oite.in");
ofstream cout("oite.out");
const int lim=1024+3;
int v[lim];
map<int,int> m,f;
int main()
{
int n,l,rasp=0;
cin>>n>>l;
for(int i=1;i<=n;++i)
cin>>v[i],f[v[i]]++;
for(int i=1;i<=n-1;++i)
for(int j=i+1;j<=n;++j)
if(v[i]+v[j]<=l){
m[v[i]+v[j]]++;
if(2*(v[i]+v[j])!=l)
rasp+=m[l-v[i]-v[j]],rasp%=1000007;
}
if(l%2==0) rasp+=((m[l/2]*(m[l/2]-1))/2)%1000007,rasp%=1000007;
for(int i=1;i<=n;++i){
rasp-=m[l-2*v[i]],rasp=(rasp+1000007+1000007)%1000007;
if(l/2>=v[i] and l%2==0)
rasp-=f[l/2-v[i]],rasp=(rasp+1000007+1000007)%1000007;
}
cout<<rasp;
return 0;
}