Pagini recente » Istoria paginii runda/moisil_9/clasament | Cod sursa (job #184508) | Cod sursa (job #1094849) | Cod sursa (job #1630678) | Cod sursa (job #1509433)
#include <fstream>
#include <vector>
#define nMax 1100
#define MOD 100001
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
long long val[nMax], i, j, sum, s, sol, n;
vector<long long> G[MOD];
int find_value(long long val)
{
int bck=0;
int list=val%MOD;
for(vector<long long>::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];
sol+=find_value(sum);
}
for(j=1;j<i;j++)
add_value(val[i]+val[j]);
}
fout<<sol;
return 0;
}