Cod sursa(job #40991)

Utilizator mariusdrgdragus marius mariusdrg Data 27 martie 2007 21:29:43
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include<stdio.h>
#include<algorithm>

using namespace std;

const int maxn = 101;

long long c;
long long l;
long long n;
long long a[maxn],nr[maxn];
long long prod;
long long sum;
long long nr1[maxn];
long long ind[maxn];
long long i;
long long sol;
long long j;


long long cmpf(const long long i, const long long j)
{
        return a[i] > a[j];
}


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[i],&nr[i]);
                ind[i] = i;
        }
        sort(ind + 1, ind  + n+ 1, cmpf);
        for(i = 1;i <= n; ++i)
        {
                prod = 1;
                for(j = 1;j <= a[ind[i]]; ++j)
                {
                        prod *= c;
                }
                while(sum + prod <= l && nr1[ind[i]] < nr[ind[i]])
                {
                        sum += prod;
                        nr1[ind[i]]++;
                        sol++;
                }
        }
        printf("%lld\n",sol);
        for(i = 1;i <= n; ++i)
        {
                printf("%lld ",nr1[i]);
        }
        printf("\n");
        return 0;
}