Cod sursa(job #1575748)

Utilizator armandpredaPreda Armand armandpreda Data 21 ianuarie 2016 20:02:01
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream cin("shop.in");
ofstream cout("shop.out");

const int LIM=35;
int n, c;
long long l;
struct moneda
{
    long long val;
    int nr, poz, cate;
} v[LIM];
bool cmp1(moneda a, moneda b)
{
    return a.val>b.val;
}
bool cmp2(moneda a, moneda b)
{
    return a.poz<b.poz;
}
int main()
{
    cin>>n>>c>>l;
    for(int i=1; i<=n; ++i)
    {
        int put;
        cin>>put>>v[i].nr;
        v[i].val=1;
        for(int j=1; j<=put; ++j)
            v[i].val*=c;
        v[i].poz=i;
    }
    sort(v+1, v+n+1, cmp1);
    long long ans=0;
    for(int i=1; i<=n; ++i)
        while(v[i].val<=l and v[i].nr>0)
        {
            l-=v[i].val;
            v[i].nr--;
            v[i].cate++;
            ans++;
        }
    sort(v+1, v+n+1, cmp2);
    cout<<ans<<'\n';
    for(int i=1; i<=n; ++i)
        cout<<v[i].cate<<' ';
    return 0;
}