Pagini recente » Cod sursa (job #2643769) | Cod sursa (job #1666986) | Cod sursa (job #1899241) | Cod sursa (job #1503625) | Cod sursa (job #908487)
Cod sursa(job #908487)
#include <cstdio>
#include <vector>
#define NMAX 1025
#define MOD 10007
using namespace std;
vector < int > Hash[MOD];
int V[NMAX];
int Suma_curenta;
int S,C,nr;
void citesc(){
freopen("oite.in","r",stdin);
freopen("oite.out","w",stdout);
scanf("%d%d",&C,&S);
for(register int i=1;i<=C;++i)
scanf("%d",&V[i]);
}
inline void Add(int X){
int key = X%MOD;
Hash[key].push_back(X);
}
inline void Search(int X){
int key = X%MOD;
for(vector < int >::iterator it = Hash[key].begin();it!=Hash[key].end();++it)
if(*it == X)
nr++;
}
inline void solve(){
for(register int i=1;i<C;++i){
for(register int j=i+1;j<=C;++j){
Suma_curenta = V[i]+V[j];
if(Suma_curenta < S)
Search(S-Suma_curenta);
}
for(register int k=1;k<i;++k)
Add(V[k]+V[i]);
}
printf("%d",nr);
}
int main(){
citesc();
solve();
return 0;
}