Cod sursa(job #2020777)

Utilizator refugiatBoni Daniel Stefan refugiat Data 11 septembrie 2017 17:50:24
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#define p first
#define cnt second.first
#define id second.second
using namespace std;
ifstream si("shop.in");
ofstream so("shop.out");
pair<int,pair<int,int>>x[35];
int uz[35];
int main()
{
    int n;
    long long c,l;
    si>>n>>c>>l;
    int a,b;
    for(int i=1;i<=n;++i)
    {
        si>>a>>b;
        x[i].p=a;
        x[i].cnt=b;
        x[i].id=i;
    }
    sort(x+1,x+n+1);
    long long nec=0;
    long long val=1;
    for(int i=1;i<=x[n].p;++i)
        val*=c;
    long long cur=l/val;
    if(cur>x[n].cnt)
    {
        cur=x[n].cnt;
    }
    l-=val*cur;
    nec+=cur;
    uz[x[n].id]=cur;
    for(int i=n-1;i;--i)
    {
        while(x[i+1].p>x[i].p)
        {
            --x[i+1].p;
            val/=c;
        }
        cur=l/val;
        if(cur>x[i].cnt)
        {
            cur =x[i].cnt;
        }
        l-=val*cur;
        nec+=cur;
        uz[x[i].id]=cur;
    }
    so<<nec<<'\n';
    for(int i=1;i<=n;++i)
        so<<uz[i]<<' ';
    return 0;
}