Pagini recente » Cod sursa (job #3164481) | Cod sursa (job #1316108) | Cod sursa (job #570805) | Cod sursa (job #536689) | Cod sursa (job #68187)
Cod sursa(job #68187)
#include<stdio.h>
#include<stdlib.h>
long long l;
int c,n;
FILE*f=fopen("shop.in","r");
FILE*g=fopen("shop.out","w");
typedef struct
{
long x,y,z;
}element;
element a[10000];
long ii[1000];
void read()
{
fscanf(f,"%d %d %ld",&n,&c,&l);
for(int i=0;i<n;++i)
{ fscanf(f,"%ld %ld",&a[i].x,&a[i].y);
a[i].z=i;
}
}
int min(long a, long b)
{
if(a>b) return a;
else return b;
}
int intcmp(const void *a, const void *b)
{
return *(int*)a-*(int*)b;
}
long viz[1000];
int calcul()
{
long long k=0,s=0,sol=0;
long p,i,j;
qsort(a,n,sizeof(a[0]),intcmp);
i=n-1;
while(s!=l&&i>=0)
{
j=1;
p=1;
while(j<=a[i].x) {p*=c;j++;}
j=0;
while(j<a[i].y&&s+p<=l)
{
s+=p;
j++;
}
k++;
viz[a[i].z]=j;
sol+=j;
i--;
}
fprintf(g,"%ld\n",sol);
for(i=0;i<n;++i) fprintf(g,"%ld ",viz[i]);
}
int main()
{
read();
calcul();
return 0;
}