Pagini recente » Cod sursa (job #1435762) | Cod sursa (job #2097142) | Cod sursa (job #2297478) | Cod sursa (job #1123014) | Cod sursa (job #778096)
Cod sursa(job #778096)
#include<fstream>
#include<vector>
#define mod 400007
#define dim 1200
using namespace std;
ifstream f("oite.in");
ofstream g("oite.out");
int n,L,i,j,ans;
vector< pair < int,int > >T[mod+4];
int v[dim];
void insert (int x) {
int key,i,check=0;
key=x%mod;
for(i=0;i<T[key].size();++i){
if(T[key][i].first==x){
check=1;
T[key][i].second++;
}
}
if(!check)
T[key].push_back(make_pair(x,1));
}
int query( int x ){
int key,i,s=0;
key=x%mod;
for(i=0;i<T[key].size();++i)
if(T[key][i].first==x)
s+=T[key][i].second;
return s;
}
int main (){
f>>n>>L;
for(i=1;i<=n;++i )
f>>v[i];
for(i=2;i<n;++i){
for(j=1;j<i;++j)
insert(v[i]+v[j]);
for(j=i+2;j<=n;++j){
if(L-v[i+1]-v[j]>=0)
ans+=query(L-v[i+1]-v[j]);
}
}
g<<ans<<"\n";
return 0;
}