Pagini recente » Cod sursa (job #362193) | Cod sursa (job #945644) | Cod sursa (job #1920822) | Cod sursa (job #314374) | Cod sursa (job #2495971)
#include <bits/stdc++.h>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int n,m,c,k,v[1001],p,aux[1001];
long long l,val;
struct bani{
int x,c;
}a[30];
bool cmp(bani a, bani b){
return a.x>b.x;
}
long long log_exp(int x, int n){
if(n==0)return 1;
else{
long long p=x;
long long sol=1;
for(int i=0; (1<<i)<=n; ++i){
if( ((1<<i) & n) > 0)
sol=sol*p;
p=p*p;
}
return sol;
}
}
int main(){
f>>n>>c>>l;
for(int i=1; i<=n; ++i){
f>>a[i].x>>a[i].c;
aux[i]=a[i].x;
}
sort(a+1, a+n+1, cmp);
val=log_exp(c,a[1].x);
int i=1;
while(l/val>0){
p=l/val;
p=min(p,a[i].c);
l=l-p*val;
v[a[i].x]=p;
k=k+p;
++i;
val=log_exp(c,a[i].x);
}
g<<k<<'\n';
for(int i=1; i<=n; ++i){
g<<v[aux[i]]<<' ';
}
return 0;
}