Cod sursa(job #3348358)

Utilizator alexkAlexandru Kelemen alexk Data 20 martie 2026 22:23:24
Problema Shop Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("shop.in");
ofstream cout("shop.out");
int n, c, sol[35], MIN=0;
long long int l;
struct poz
{
    int p, t, ind;
};
vector<poz>v(35);
bool cmp(poz a, poz b)
{
    return a.p>b.p;
}
long long fastpow(long long b, long long p)
{
    long long ans=1;
    while(p)
    {
        if(p%2==1)
            ans=ans*b;
        b=b*b;
        p=p/2;
    }
    return ans;
}
int main()
{
    cin>>n>>c>>l;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i].p>>v[i].t;
        v[i].ind=i;
    }
    sort(v.begin()+1, v.begin()+n+1, cmp);
    for(int i=1;i<=n;i++)
    {
        long long power=fastpow(c, v[i].p);
        long long times=l/power;
        if(times>=v[i].t)
        {
            sol[v[i].ind]=v[i].t;
            MIN+=v[i].t;
            l-=1LL*power*v[i].t;
        }else if(times!=0)
        {
            sol[v[i].ind]=times;
            MIN+=times;
            l-=1LL*power*times;
        }
        if(l==0)
            break;
    }
    cout<<MIN<<'\n';
    for(int i=1;i<=n;i++)
        cout<<sol[i]<<' ';

    return 0;
}