Pagini recente » Cod sursa (job #2531069) | Cod sursa (job #2461231) | Cod sursa (job #1901935) | Cod sursa (job #1512385) | Cod sursa (job #37699)
Cod sursa(job #37699)
#include<stdio.h>
int main()
{long long unsigned n,s,p,x[101],ok,aux,c,l,y[101],k,i,j,a[101],b[101],kmax=0;
FILE *f=fopen("shop.in","r");
FILE *g=fopen("shop.out","w");
fscanf(f,"%llu %llu %llu",&n,&c,&l);
for (i=1;i<=n;i++)
{fscanf(f,"%llu %llu",&x[i],&y[i]);
a[i]=i;}
do
{ok=0;
for (i=1;i<=n-1;i++)
if (x[i]<x[i+1]){aux=x[i]; x[i]=x[i+1]; x[i+1]=aux; aux=y[i]; y[i]=y[i+1];y[i+1]=aux; aux=a[i]; a[i]=a[i+1]; a[i+1]=aux;ok=1;}}while (ok==1);
s=0;
for (i=1;i<=n;i++)
{k=0;
while (k<y[i])
{p=1;
for (j=1;j<=x[i];j++)
p*=c;
if (s+p<l) {s+=p; k++;kmax++;}
else if (s==p) {s+=p;k++;kmax++;break;}
else break;}
b[a[i]]=k;}
fprintf(g,"%llu\n",kmax);
for (i=1;i<=n;i++) fprintf(g,"%llu ",b[i]);
fclose(f);
fclose(g);
return 0;}