Cod sursa(job #1484098)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 10 septembrie 2015 14:41:44
Problema Shop Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
long long l,y,n,c,a[31],b[31],m,j,i,x[31],z;
long long P(long long x,long long n) { return !n?1:(n%2?x*P(x,(n-1)/2)*P(x,(n-1)/2):P(x,n/2)*P(x,n/2); }
int main() {
    freopen("shop.in","r",stdin),freopen("shop.out","w",stdout),scanf("%lld%lld%lld",&n,&c,&l);
    for(i=1;i<=n;i++)
        scanf("%lld%lld",a+i,b+i);
    while(l) {
        for(m=-1,j=0,i=1;i<=n;i++)
        if(m<a[i])
            m=a[i],j=i;
        y=P(c,m),x[j]=l/y<b[j]?l/y:b[j],a[j]=-1,l-=(x[j]*y),z+=x[j];
    }
    printf("%lld\n",z);
    for(i=1;i<=n;i++)
        printf("%lld ",x[i]);
}