Pagini recente » Cod sursa (job #1572906) | Cod sursa (job #2904617) | Cod sursa (job #202601) | Cod sursa (job #1623167) | Cod sursa (job #964570)
Cod sursa(job #964570)
#include<stdio.h>
int a[30],b[30],copie[30],ind[30];
int main()
{
FILE *fin,*fout;
fin=fopen("shop.in","r");
fout=fopen("shop.out","w");
int n,c,l;
fscanf(fin,"%d%d%d",&n,&c,&l);
int i;
for(i=0; i<n; i++)
{
fscanf(fin,"%d%d",&a[i],&b[i]);
copie[i]=b[i];
ind[i]=i;
}
int j;
for(i=0; i<n; i++)
for(j=i+1; j<n; j++)
{
if(a[j]>a[i])
{
int aux=a[j];
a[j]=a[i];
a[i]=aux;
//
aux=b[j];
b[j]=b[i];
b[i]=aux;
//
aux=ind[j];
ind[j]=ind[i];
ind[i]=aux;
}
}
int coins=0,poz=0;
for(i=0; i<n; i++)
{
int putere=1,copie=a[i];
while(a[i])
putere*=c,a[i]--;
a[i]=copie;
while(l-putere>=0&&b[i])
l-=putere,b[i]--,coins++;
if(l==0)
poz=i,i=n;
}
for(i=0; i<n; i++)
for(j=i+1; j<n; j++)
{
if(ind[j]<ind[i])
{
int aux=a[j];
a[j]=a[i];
a[i]=aux;
//
aux=b[j];
b[j]=b[i];
b[i]=aux;
//
aux=ind[j];
ind[j]=ind[i];
ind[i]=aux;
}
}
fprintf(fout,"%d\n",coins);
for(i=0;i<n;i++)
{
fprintf(fout,"%d ",copie[i]-b[i]);
}
return 0;
}