Pagini recente » Cod sursa (job #1546758) | Cod sursa (job #1191939) | Cod sursa (job #485699) | Cod sursa (job #679385) | Cod sursa (job #348108)
Cod sursa(job #348108)
//infoarena
//pb : Oite
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
#define PRIM 1000001
vector<int > H[PRIM];
int cant[1025];
int lana;
int nr_cant;
/*
bool check(int lana)
{
vector<int >::iterator it;
for (it=H[lana%PRIM].begin(); it<H[lana%PRIM].end(); it++)
if (H[lana%PRIM]==lana)
return 1;
return 0;
}
void solve()
{
fstream f("oite.in", ios::in);
f>>nr_cant;
for (int i=1; i<=nr_cant; ++i)
f>>cant[i];
for (int i=1; i<=nr_cant; ++i)
for (int j=i+1; j<=nr_cant; ++j)
if (check(cant[i]+cant[j])==0)
H[(cant[i]+cant[j])%PRIM].push_back(cant[i]+cant[j]);
for (int i=1; i<=nr_cant; ++i)
for (int j=1; j<=nr_cant; ++j)
{
int lana_aux;
lana_aux=lana-v[i]-v[j];
if (lana_aux > 0)
if (check(lana_aux)==1)
{
afisare(lana_aux, i, j);
return;
}
}
stream g("oite.out", ios::out);
}
*/
void solve()
{
fstream f("oite.in", ios::in);
f>>nr_cant;
f>>lana;
for (int i=1; i<=nr_cant; ++i)
f>>cant[i];
f.close();
int nr=0;
for (int i=1; i<=nr_cant-3; ++i)
for (int j=i+1; j<=nr_cant-2; ++j)
for (int k=j+1; k<=nr_cant-1; ++k)
for (int q=k+1; q<=nr_cant; ++q)
if ( (cant[i]+cant[j]+cant[k]+cant[q])==lana )
++nr;
fstream g("oite.out", ios::out);
g<<nr<<"\n";
g.close();
}
int main()
{
solve();
return 0;
}