Pagini recente » Cod sursa (job #1128914) | Cod sursa (job #449744) | Cod sursa (job #1809814) | Cod sursa (job #1658964) | Cod sursa (job #2073116)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int n,c;
long long l;
struct mon { long long p, cnt,sol;
} m[31];
int pw[33];
int poz[31];
int sol[33];
int mycomp(mon a, mon b)
{
return a.p<b.p;
}
int main()
{
ifstream t1("shop.in");
ofstream t2("shop.out");
t1>>n>>c>>l;
int i;
long long a,b;
for(i=1;i<=n;i++)
{
t1>>m[i].p>>m[i].cnt;
poz[ m[i].p] =i;
}
long long put=1;
i=0;
while(put<l)
{
pw[i]=put;
put*=c;
i++;
}
sort(m+1,m+n+1,mycomp);
long long nr=0;
for(i=n;i>=1;i--)
{
if( pw[ m[i].p ] && pw[ m[i].p ]<=l )
{
m[i].sol= min ( l/ pw [ m[i].p ] , m[i].cnt );
l-= m[i].sol*pw[ m[i].p ];
nr+=m[i].sol;
}
}
for(i=1;i<=n;i++)
sol[ poz[ m[i].p ] ] = m[i].sol ;
t2<<nr<<'\n';
for(i=1;i<=n;i++) t2<<sol[i]<<' ';
t1.close();
t2.close();
return 0;
}