Pagini recente » Cod sursa (job #2820419) | Cod sursa (job #1727628) | Cod sursa (job #2428712) | Cod sursa (job #1665697) | Cod sursa (job #2020777)
#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;
}