Pagini recente » Cod sursa (job #2373067) | Cod sursa (job #1365126) | Cod sursa (job #1563495) | Cod sursa (job #3217956) | Cod sursa (job #728147)
Cod sursa(job #728147)
#include<cstdio>
#include<math.h>
using namespace std;
unsigned long long n,l,c,a[30],b[30],d[30],x[30],s,k;
unsigned long long putere(unsigned long long x,unsigned long long y)
{
while(y)
return x*putere(x,y-1);
return 1;
}
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
unsigned long long i,j;
scanf("%d%d%d",&n,&c,&l);
for(i=0;i<n;i++)
{
scanf("%d%d",&a[i],&b[i]);
d[i]=i;
}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]<a[j])
{
unsigned long long aux=a[i];
a[i]=a[j];
a[j]=aux;
aux=b[i];
b[i]=b[j];
b[j]=aux;
aux=d[i];
d[i]=d[j];
d[j]=aux;
}
i=0;
while(s<l && i<n)
{
unsigned long long p=0,f;
f=putere(c,a[i]);
while(s+f<=l && b[i])
{
s+=f;
b[i]--;
k++;
p++;
}
x[d[i++]]=p;
}
if(s==l)
{
printf("%d\n",k);
for(i=0;i<n;i++)
printf("%d ",x[i]);
}
printf("\n");
return 0;
}