Pagini recente » Cod sursa (job #1527706) | Cod sursa (job #1584040) | Cod sursa (job #1680246) | Cod sursa (job #1143564) | Cod sursa (job #2496614)
#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],ap[100];
long long l,val;
struct bani{
int x,c,i;
}a[30];
bool cmp(bani a, bani b){
return a.x>b.x;
}
bool cmp2(bani a, bani b){
return a.i<b.i;
}
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;
a[i].i=i;
aux[i]=a[i].x;
}
sort(a+1, a+n+1, cmp);
val=log_exp(c,a[1].x);
int i=1;
for(int i=1; i<=n; ++i){
val=log_exp(c,a[i].x);
p=l/val;
if(p<a[i].c){
l=l-p*val;
a[i].c=p;
}
else l=l-a[i].c*val;
k=k+a[i].c;
ap[a[i].x]=min(p,a[i].c);
}
g<<k<<'\n';
for(int i=1; i<=n; ++i){
g<<ap[aux[i]]<<' ';
}
return 0;
}