Cod sursa(job #1375709)

Utilizator akaprosAna Kapros akapros Data 5 martie 2015 14:03:25
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<algorithm>
#include<cstring>
#define Nmax 35
using namespace std;
int n,i,j;
long long c,l;
int b[Nmax],w[Nmax],a,m;
struct nod
{
    int x;
    int 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("%d %lld %lld",&n,&c,&l);
    for (i=1;i<=n;i++)
    {
        scanf("%d %d",&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("%d\n",m);
    for (i=1;i<=n;i++)
    printf("%d ",w[i]);
    return 0;
}