Pagini recente » Cod sursa (job #1580780) | Cod sursa (job #681199) | Cod sursa (job #2099566) | Cod sursa (job #310426) | Cod sursa (job #1509435)
#include <fstream>
#include <vector>
#define nMax 1100
#define MOD 10000
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int val[nMax], i, j, sum, s, n;
long long sol;
vector<int> G[MOD];
int find_value(int val)
{
int bck=0;
int list=val%MOD;
for(vector<int>::iterator it=G[list].begin();it!=G[list].end();it++)
if(*it==val)
bck++;
return bck;
}
void add_value(long long val)
{
int list=val%MOD;
G[list].push_back(val);
}
int main()
{
fin>>n>>s;
for(i=1;i<=n;i++)
fin>>val[i];
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
sum=s-val[i]-val[j];
if(sum<0)
continue;
sol+=find_value(sum);
}
for(j=1;j<i;j++)
add_value(val[i]+val[j]);
}
fout<<sol;
return 0;
}