Cod sursa(job #38944)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 26 martie 2007 11:53:43
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>

int main(){
    freopen("shop.in","r",stdin);
    freopen("shop.out","w",stdout);
    long long N,C,L,i,j,min,s,x;
    long long A[34],p[34],tip[34],m[34],ind[34];
    scanf("%I64d %I64d %I64d",&N,&C,&L);
    p[0]=1;A[0]=0;m[0]=0;tip[0]=0;
    for (i=1;i<=32;i++){A[i]=0;p[i]=p[i-1]*C;m[i]=0;tip[i]=0;}
    for (i=1;i<=N;i++){
        scanf("%I64d",&x);
        scanf("%I64d",&A[x]);
        tip[x]=i;
    }
    j=32;s=0;
    while (L){
          min=L/p[j];
          if (A[j]<min)min=A[j];
          L-=min*p[j];
          m[j]=min;
          s+=min;
          j--;
          if (j<0)break;
    }
    for (i=0;i<=32;i++){
        ind[tip[i]]=i;
    }
    printf("%I64d\n",s);
    for (i=1;i<=N;i++){
        printf("%I64d ",m[ind[i]]);
    }
    printf("\n");
    return 0;
}