Pagini recente » Cod sursa (job #2829525) | Cod sursa (job #1034336) | Cod sursa (job #1369718) | Cod sursa (job #1808265) | Cod sursa (job #1002746)
#include <fstream>
#include <algorithm>
#define Lmax 10000000000000000
#define Amax 32
#define Nmax 35
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int n,C,A[Nmax],B[Nmax],sol[Nmax];
long long L;
struct Ban
{
long long val;
int nr,tip;
}M[Nmax];
bool cmp(Ban x,Ban y)
{
return x.val>y.val;
}
long long Putere(long long N,long long P)
{
long long m=1;
while (P!=1)
if(P % 2==0)
{
N=(N*N);
P/=2;
}
else
{
m=(m*N);
P--;
}
return (m*N);
}
int main()
{
f>>n>>C>>L;
for(int i=1;i<=n;i++)
{
int a,b;
f>>a>>b;
M[i].val=1;
for(int j=1;j<=a;j++)M[i].val*=C;
M[i].nr=b;
M[i].tip=i;
}
sort(M+1,M+1+n,cmp);
for(int i=1;i<=n && L!=0;i++)
if(M[i].val<=L)
{
int aux=L/M[i].val,S=min(aux,M[i].nr);
sol[0]+=S;
sol[M[i].tip]+=S;
L-=(M[i].val*S);
}
g<<sol[0]<<'\n';
for(int i=1;i<=n;i++)g<<sol[i]<<' ';g<<'\n';
f.close();g.close();
return 0;
}