Pagini recente » Cod sursa (job #1138477) | Cod sursa (job #2670537) | Cod sursa (job #1935768) | Cod sursa (job #1086687) | Cod sursa (job #1454489)
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
struct date{
long long ai, bi, poz, nr;
} v[31];
long long k, l, m, n, p, c, i, j, sum;
bool s1(date a, date b){
return(a.ai>b.ai);
}
bool s2(date a, date b){
return(a.poz<b.poz);
}
long long put(int x, int y){
long long a=x, b=y, p=1;
while(b!=0){
if(b%2==1){
p=p*a;
--b;
}
a=(a*a);
b/=2;
}
return p;
}
int main()
{
freopen("shop.in", "r", stdin);
freopen("shop.out", "w", stdout);
scanf("%lld%lld%lld", &n, &p, &l);
for(i=1; i<=n; ++i){
scanf("%lld%lld", &v[i].ai, &v[i].bi);
v[i].poz=i;
}
sort(v+1, v+n+1, s1);
for(i=1; i<=n; ++i){
long long nr=put(p, v[i].ai), q;
q=min(v[i].bi, l/nr);
v[i].nr=q;
l=l-nr*q;
sum+=q;
}
sort(v+1, v+n+1, s2);
printf("%lld\n", sum);
for(i=1; i<=n; ++i)
printf("%d ", v[i].nr);
return 0;
}