Pagini recente » Cod sursa (job #242759) | Cod sursa (job #1127896) | Cod sursa (job #2195355) | Cod sursa (job #1367291) | Cod sursa (job #37813)
Cod sursa(job #37813)
#include <stdio.h>
int main()
{
long int l, a[30], p, s[30];
int n, i, j, k, c, b[30], nrmin, nr, x[30], y[30]={0}, m;
FILE *f=fopen("shop.in","rt");
fscanf(f,"%i %i %li", &n, &c, &l);
for (i=0; i<n; i++)
{
fscanf(f,"%li %i", a+i, b+i);
p=1;
for (j=0; j<a[i]; j++)
p=p*c;
a[i]=p;
}
fclose(f);
k=1;
x[k]=0;
s[0]=0;
m=0;
nrmin=2000000;
do
{
while (x[k]<b[k-1])
{
x[k]++;
s[k]=s[k-1]+x[k]*a[k-1];
if (s[k]==l)
{
nr=0;
for (i=1; i<=k; i++) nr+=x[i];
if (nr<nrmin)
{
nrmin=nr;
for (i=1; i<=k; i++) y[i]=x[i];
m=k;
}
}
else
if (k<=n)
{
k++;
x[k]=0;
}
}
k--;
}
while (k>0);
f=fopen("shop.out","wt");
fprintf(f,"%i\n", nrmin);
for (i=1; i<=m; i++) fprintf(f,"%i ", y[i]);
fprintf(f,"\n");
fclose(f);
return 0;
}