Cod sursa(job #956336)

Utilizator classiusCobuz Andrei classius Data 2 iunie 2013 21:20:41
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <cmath>
#include <algorithm>

using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");

int n,c,l;
struct mnz{int a,b,s=0,p;};
mnz ttl[50];

bool mnzacmp(const mnz& m1,const mnz& m2)
{
    return m1.a<m2.a;
}

bool mnzpcmp(const mnz& m1,const mnz& m2)
{
    return m1.p<m2.p;
}

int main()
{
    f>>n>>c>>l;

    for(int i=0;i<n;i++){
        int a,b;
        f>>a>>b;
        ttl[i].a=a;
        ttl[i].b=b;
        ttl[i].p=i;
    }

    sort(ttl,ttl+n,mnzacmp);

    int nr=0;

    for(int i=n-1;i>=0;i--){
        while(l>=pow(c,ttl[i].a)&&ttl[i].b){
            l-=pow(c,ttl[i].a);
            ttl[i].s++;
            ttl[i].b--;
            nr++;
        }
    }

    sort(ttl,ttl+n,mnzpcmp);

    g<<nr<<'\n';
    for(int i=0;i<n;i++)
        g<<ttl[i].s<<" ";


    return 0;
}