Pagini recente » Cod sursa (job #1288712) | Cod sursa (job #1979527) | Cod sursa (job #758509) | Cod sursa (job #1755767) | Cod sursa (job #730531)
Cod sursa(job #730531)
#include<fstream>
#include<cmath>
#include<vector>
#define MOD 666013
using namespace std;
int n,L,v[1030];
struct Suma{int sum,ind1;};
vector <Suma> H[666013];
int sol;
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()
{
int i,j,suma,poz;
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++;
}
}
}
}
}
inline void Afisare()
{
ofstream fout("oite.out");
fout<<sol<<"\n";
fout.close();
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}