Pagini recente » Cod sursa (job #332387) | Monitorul de evaluare | Cod sursa (job #271464) | Cod sursa (job #337464) | Cod sursa (job #113433)
Cod sursa(job #113433)
#include <stdio.h>
#include <stdlib.h>
int n, g, s[20], v[20], ok, contor;
void citire()
{
scanf("%d %d", &n, &g);
for (int i = 1; i <= n; i++) scanf ("%d",v + i);
}
int verif(int nr)
{
int sum, i, j;
for (i = 1; i <= nr; i++)
{
sum = 0;
for (j = 1; j <= n; j++) if (s[j] == i) sum += v[j];
if (sum > g) return 0;
}
return 1;
}
void back(int k, int nr)
{
int i, j;
if (k > n) {if (verif(nr))
{
contor++;
printf("%d\n",nr);
if (contor == 3) exit(0);
citire();
for (j = 1; j <= n; j++) back(1,j);
}
}
else
{
for (i = 1; i <= nr; i++)
{
s[k] = i;
back (k + 1, nr);
if (ok) break;
}
}
}
int main()
{
freopen("zebughil.in","r",stdin);
freopen("zebughil.out","w",stdout);
int z, i;
for (z = 1; z <= 3; z++)
{
citire();
for (i = 1; i <= n; i++)
back(1,i);
}
return 0;
}