Pagini recente » Istoria paginii runda/happy-birthday-infoarena-2014/clasament | Cod sursa (job #573469) | Cod sursa (job #1220119) | Cod sursa (job #3181091) | Cod sursa (job #172999)
Cod sursa(job #172999)
/*
100p
*/
#include<stdio.h>
#include<math.h>
int n, c, sol[50], nr;
long long contor;
long long unsigned l;
typedef struct
{
int a, poz;
long long b;
} moneda;
moneda v[50];
void citire()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%d %d %llu", &n, &c, &l);
int a;
long long b;
for (int i=1; i<=n; i++)
{
scanf("%d %lld",&a, &b);
v[a].a=a; v[a].b=b;
v[a].poz=i;
}
}
void calcul()
{
int i, j;
for (i=49; i>=0; i--)
{
if (v[i].a>=0 && v[i].b!=0)
if (pow(c,v[i].a)<=l)
{
nr++;
while (pow(c,v[i].a)<=l && v[i].b)
{
sol[v[i].poz]++;
l-=(long long)pow(c,v[i].a);
v[i].b--;
contor++;
}
}
else sol[v[i].poz]=0;
}
printf("%lld\n",contor);
for (i=1; i<=n; i++)
printf("%d ",sol[i]);
}
int main()
{
citire();
calcul();
return 0;
}