Pagini recente » Cod sursa (job #1428157) | Cod sursa (job #2799747) | Cod sursa (job #3152971) | Cod sursa (job #1986617) | Cod sursa (job #1416718)
#include <bits/stdc++.h>
using namespace std;
#define MOD 666013
int n,l,sum,pos,sol;
int v[1100];
vector<pair<int,int> > vp[MOD+16];
int search(int x){
for(int i=0; i < vp[pos].size(); ++i){
if( vp[pos][i].first == sum ){
vp[pos][i].second += x;
return vp[pos][i].second ;
}
}
return 0;
}
int main()
{
freopen("oite.in" , "r" , stdin );
freopen("oite.out" , "w" , stdout);
scanf("%d %d",&n,&l);
for(int i=1;i<=n;++i)
scanf("%d ",&v[i]);
for(int i=1; i < n; ++i){
for(int j= i+1; j <=n; ++j){
sum = l - (v[i] + v[j]);
if( sum < 0 ) continue;
pos = sum % MOD;
sol += search( 0 );
}
for(int j=i-1; j ; --j){
sum = v[i] + v[j];
pos = sum % MOD;
if( search(1) ) continue;
vp[pos].push_back( make_pair(sum , 1) );
}
}
printf("%d",sol);
return 0;
}