Pagini recente » Cod sursa (job #79081) | Cod sursa (job #2725073) | Cod sursa (job #59235) | Cod sursa (job #2192324) | Cod sursa (job #2394472)
#include <fstream>
#include <vector>
#define x first
#define y second
#define dim 1000017
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int n,i,j,k,v[1100],l,sum;
vector <pair <int,int> > h[dim];
long long sol;
int main(){
fin>>n>>l;
for(i=1;i<=n;i++)
fin>>v[i];
for(i=1;i<n;i++){
///caut
for(j=i+1;j<=n;j++){
sum=l-v[i]-v[j];
if(sum<0)
continue;
for(k=0;k<h[sum%dim].size();k++)
if(h[sum%dim][k].x == sum){
sol+=h[sum%dim][k].y;
break;
}
}
///adaug
for(j=1;j<i;j++){
sum=v[i]+v[j];
for(k=0;k<h[sum%dim].size();k++)
if(h[sum%dim][k].x == sum){
h[sum%dim][k].y++;
break;
}
if(k==h[sum%dim].size())
h[sum%dim].push_back( make_pair(sum,1) );
}
}
fout<<sol;
return 0;
}