Pagini recente » Cod sursa (job #1178647) | Cod sursa (job #2130824) | Cod sursa (job #1746992) | Cod sursa (job #2684947) | Cod sursa (job #1389183)
#include <cstdio>
int n,c;
int b[33];
int p[33];
int fol[33];
long long l;
void desc(long long nr)
{
int p,put=0;
for(p=1;;p*=c)
{
if(p*c>nr)
{
break;
}
put++;
}
while(nr!=0)
{
if(nr>=p)
{
while(nr>=p)
{
nr-=p;
b[put]++;
}
}
put--;
p/=c;
}
}
int main()
{
FILE *fin;
fin=fopen ("shop.in","r");
freopen ("shop.out","w",stdout);
fscanf(fin,"%d%d%lld",&n,&c,&l);
int a,bx;
for(int i=1;i<=n;i++)
{
fscanf(fin,"%d%d",&a,&bx);
p[a]+=bx;
}
desc(l);
for(int i=32;i>=0;i--)
{
if(b[i]!=0)
{
if(b[i]>=p[i])
{
b[i]-=p[i];
fol[i]+=p[i];
}
else
{
fol[i]=b[i];
b[i]=0;
}
if(i!=0) b[i-1]+=c*b[i];
}
}
long long sum=0;
for(int i=0;i<=32;i++) sum+=fol[i];
printf("%lld\n",sum);
fclose(fin);
freopen ("shop.in","r",stdin);
scanf("%d%d%lld",&n,&c,&l);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a,&bx);
printf("%d ",fol[a]);
}
fclose(fin);
}