Cod sursa(job #870429)

Utilizator thewildnathNathan Wildenberg thewildnath Data 3 februarie 2013 13:35:50
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

int b[31],v[31];
long long a[31];

int cmp(int m,int n)
{
    if(a[m]<a[n])
        return 0;
    return 1;
}
int main()
{
    freopen("shop.in","r",stdin);
    freopen("shop.out","w",stdout);
    int n,c,i,j,x,s=0;
    long long l;
    scanf("%d%d%lld",&n,&c,&l);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&x,&b[i]);
        v[i]=i;
        a[i]=1;
        while(a[i]*c<=l&&x>0)
        {
            a[i]=a[i]*c;
            x--;
        }
        if(x>0)
            a[i]=-1;
    }
    sort(v+1,v+n+1,cmp);
    for(i=1;i<=n;i++)
    {
        if(a[v[i]]==-1)
        {
            for(j=i;j<=n;j++)
                b[v[i]]=0;
            break;
        }
        x=l/a[v[i]];
        if(x<b[v[i]])
            b[v[i]]=x;
        l=l-a[v[i]]*b[v[i]];
        s=s+b[v[i]];
    }
    printf("%d\n",s);
    for(i=1;i<=n;i++)
        printf("%d ",b[i]);
    return 0;
}