Pagini recente » Cod sursa (job #2576151) | Cod sursa (job #2166648) | Cod sursa (job #2513199) | Cod sursa (job #2490379) | Cod sursa (job #1453637)
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
FILE *f=fopen("shop.in", "r");
FILE *g=fopen("shop.out", "w");
struct date{
int b, p;
long long nr, a;
} v[31];
bool cmp(date a, date b){
return (a.a>b.a);
}
bool cmp2(date a, date b){
return (a.p<b.p);
}
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()
{
int n, l, c;
long long suma=0;
fscanf(f, "%d%d%d", &n, &c, &l);
for(int i=1; i<=n; ++i){
int x;
fscanf(f, "%d%d", &x, &v[i].b);
v[i].p=i;
v[i].a=put(c, x);
}
sort(v+1, v+n+1, cmp);
for(int i=1; i<=n; ++i){
long long nr=v[i].a, s;
s=min(nr*v[i].b, l/nr*nr);
l-=s;
suma=suma+s/nr;
v[i].nr=s/nr;
}
sort(v+1, v+n+1, cmp2);
fprintf(g, "%I64d\n", suma);
for(int i=1; i<=n; ++i)
fprintf(g, "%I64d ", v[i].nr);
}