Pagini recente » Cod sursa (job #3265966) | Cod sursa (job #2057030) | Cod sursa (job #2216627) | Cod sursa (job #750376) | Cod sursa (job #1556427)
#include <fstream>
#include <vector>
using namespace std;
#define NMax 1030
#define MOD 666013
ifstream f("oite.in");
ofstream g("oite.out");
vector< pair<int,int> > H[MOD];
int n,L;
int v[NMax];
int cnt;
void ins(int x)
{
int r = x % MOD;
for(int i=0;i<H[r].size();++i)
{
if(H[r][i].first == x)
{
H[r][i].second += 1;
return;
}
}
H[r].push_back(make_pair(x,1));
}
int apar(int x)
{
int r = x % MOD;
for(int i=0;i<H[r].size();++i)
{
if(H[r][i].first == x)
{
return H[r][i].second;
}
}
return 0;
}
int main()
{
int i,j;
f>>n>>L;
for(i=1;i<=n;++i) f>>v[i];
for(i=2;i<n;++i)
{
for(j=i+1;j<=n;++j)
{
cnt += apar(L-v[i]-v[j]);
}
for(j=1;j<i;++j)
{
ins(v[i]+v[j]);
}
}
g<<cnt<<"\n";
f.close();
g.close();
return 0;
}