Cod sursa(job #2525391)

Utilizator IoanMihaiIoan Mihai IoanMihai Data 17 ianuarie 2020 11:41:53
Problema Shop Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
int n,c,x,d;
bool ok;
long long l,mon;
struct bani{
long long val,ord,nr;
}a[40];
long long putere(int x,int y)
{
    long long p=1;
    for (int i=1;i<=y;i++)
    {
        p*=x;
    }
    return p;
}
bool comp(bani a,bani b)
{
    return a.val<b.val;
}
bool comp1(bani a,bani b)
{
    return a.ord<b.ord;
}
int main()
{
    fin>>n>>c>>l;
    for (int i=1;i<=n;i++)
    {
        fin>>x>>a[i].nr;
        a[i].val=putere(c,x);
        a[i].ord = i;
    }
    sort(a+1,a+n+1,comp);
    for (int i=n;i>=1;i--)
    {
        d=l/a[i].val;
        if (d>a[i].nr)
        {
            l = l - a[i].nr*a[i].val;
            mon+=a[i].nr;
        }
        else
        {
            a[i].nr=d;
            l = l - d*a[i].val;
            mon+=d;
        }
    }
    sort(a+1,a+n+1,comp1);
    fout<<mon<<'\n';
    for (int i=1;i<=n;i++)
        fout<<a[i].nr<<' ';
    return 0;
}