Cod sursa(job #1413038)

Utilizator akaprosAna Kapros akapros Data 1 aprilie 2015 18:15:23
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 35
using namespace std;
long long n,i,j;
long long c,l;
long long b[Nmax],w[Nmax],a,m;
struct nod
{
    long long x;
    long long y;
}v[Nmax];
int cmp(const nod a,const nod b)
{
    return a.x<b.x;
}
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,&b[i]);
        v[i].x=1;
        for (j=1;j<=a;j++)
        v[i].x=v[i].x*c;
        v[i].y=i;
    }
    sort(v+1,v+n+1,cmp);
    i=n;
    while (l)
    {
        if (l/v[i].x>b[v[i].y])
        l=l-(b[v[i].y]*v[i].x),w[v[i].y]=b[v[i].y],m=m+b[v[i].y];
        else w[v[i].y]=l/v[i].x,m=m+(l/v[i].x),l=l%v[i].x;
        i--;
    }
    printf("%lld\n",m);
    for (i=1;i<=n;i++)
    printf("%lld ",w[i]);
    return 0;
}