Pagini recente » Cod sursa (job #2445925) | Cod sursa (job #2584598) | Clasament testround | Cod sursa (job #1873464) | Cod sursa (job #172997)
Cod sursa(job #172997)
#include <fstream.h>
#include <math.h>
ifstream f("shop.in");
ofstream g("shop.out");
long long unsigned putere[400], a[31], n,c,r, l,b[31],pp[400],fol[31],total;
void initializare(){
f>>n>>c>>l;
int i;
for(i=1;i<=n;i++){
f>>a[i]>>b[i];
pp[a[i]]=b[i];
}
}
void transfbaz(){
r=0;
while(l){
putere[r]=l%c;
l=l/c;
r++;
}
r--;
}
void program(){
int i,ok;
for(i=r;i>=30;i--)putere[i]+=putere[i+1]*c;
for(i=30;i>=1;i--){
if(pp[i]){
if(pp[i]>=putere[i]){fol[i]=putere[i];total+=fol[i];putere[i]=0;}
else{
fol[i]=pp[i];
total=fol[i]+total;
putere[i]=putere[i]-fol[i];;
}
}
putere[i-1]+=c*putere[i];
}
fol[0]=putere[0];total+=fol[0];
}
int main(){
initializare();
transfbaz();
program();
int i;
g<<total<<"\n";
for(i=1;i<=n;i++)g<<fol[a[i]]<<" ";
f.close();
g.close();
return 0;
}