Pagini recente » Cod sursa (job #472963) | Cod sursa (job #775800) | Cod sursa (job #832116) | Cod sursa (job #2660448) | Cod sursa (job #730952)
Cod sursa(job #730952)
#include<fstream>
#include<cmath>
#include<vector>
#define MOD 7919
using namespace std;
int n,L,v[1030];
struct Suma{int sum,ind1;};
vector <Suma> H[7919];
inline void Citire()
{
int i;
ifstream fin("oite.in");
fin>>n>>L;
for(i=1;i<=n;i++)
fin>>v[i];
fin.close();
}
inline void Rezolvare()
{
register int i,j,suma,poz,sol=0;
Suma aux;
vector <Suma>::iterator it;
//Precalculare sume
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
aux.ind1=i;
aux.sum=v[i]+v[j];
H[aux.sum%MOD].push_back(aux);
}
}
//Rezolvare
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
suma=L-v[i]-v[j];
if(suma>=0)
{
poz=suma%MOD;
for(it=H[poz].begin();it!=H[poz].end();it++)
{
aux=*it;
if(aux.sum==suma && aux.ind1>j)
sol++;
}
}
}
}
ofstream fout("oite.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
return 0;
}