Pagini recente » Cod sursa (job #1687556) | Cod sursa (job #681718) | Cod sursa (job #128933) | Cod sursa (job #996633) | Cod sursa (job #2495979)
#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);
}
if(l>0){
for(int i=1; i<=1000000; ++i)
for(int j=1; j<=1000000;++j);
}
g<<k<<'\n';
for(int i=1; i<=n; ++i){
g<<v[aux[i]]<<' ';
}
return 0;
}