Pagini recente » Cod sursa (job #557199) | Cod sursa (job #1146534) | Cod sursa (job #443290) | Cod sursa (job #1988244) | Cod sursa (job #665336)
Cod sursa(job #665336)
#include<fstream>
#include<vector>
using namespace std;
#define NMAX 1030
#define PRIM 100003
typedef struct pereche
{
short unu,doi;
int suma;
} pereche;
int n,l;
int a[NMAX];
vector<pereche> t[PRIM];
long long moduri;
void read()
{
int i;
ifstream fin("oite.in");
fin>>n>>l;
for (i=1; i<=n; ++i)
fin>>a[i];
fin.close();
}
void solve()
{
int i,j,k,suma1,suma2;
pereche aux;
for (i=1; i<n; ++i)
for (j=i+1; j<=n; ++j)
{
suma1 = a[i] + a[j];
suma2 = l - suma1;
for (k=0; k<(int)t[suma2 % PRIM].size(); ++k)
if (t[suma2 % PRIM][k].suma == suma2)
if (t[suma2 % PRIM][k].unu != i && t[suma2 % PRIM][k].unu != j && t[suma2 % PRIM][k].doi != i && t[suma2 % PRIM][k].doi != j)
moduri++;
aux.unu = i; aux.doi = j; aux.suma = suma1;
t[suma1 % PRIM].push_back(aux);
}
}
void write()
{
ofstream fout("oite.out");
fout<<moduri / 3<<'\n';
fout.close();
}
int main()
{
read();
solve();
write();
return 0;
}