Pagini recente » Cod sursa (job #1988520) | Borderou de evaluare (job #3255521) | Borderou de evaluare (job #2188721) | Borderou de evaluare (job #1768077) | Cod sursa (job #68194)
Cod sursa(job #68194)
#include<stdio.h>
#include<stdlib.h>
long long l;
long long c,n;
FILE*f=fopen("shop.in","r");
FILE*g=fopen("shop.out","w");
typedef struct
{
long x,y,z;
}element;
element a[100];
long long ii[100];
void read()
{
fscanf(f,"%lld %lld %lld",&n,&c,&l);
for(int i=0;i<n;++i)
{ fscanf(f,"%lld %lld",&a[i].x,&a[i].y);
a[i].z=i;
}
}
int intcmp(const void *a, const void *b)
{
return *(long*)a-*(long*)b;
}
long long viz[100];
int calcul()
{
long long k=0,s=0,sol=0,p;
long long 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,"%lld\n",sol);
for(i=0;i<n;++i) fprintf(g,"%lld ",viz[i]);
}
int main()
{
read();
calcul();
return 0;
}