Pagini recente » Cod sursa (job #1840557) | Cod sursa (job #1390703) | Cod sursa (job #2180024) | Cod sursa (job #872530) | Cod sursa (job #172996)
Cod sursa(job #172996)
#include <fstream.h>
#include <math.h>
ifstream f("shop.in");
ofstream g("shop.out");
long long unsigned putere[400];
int a[31], n,c,r;
long long unsigned 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]+= (long long )putere[i+1]*c;
for(i=30;i>=1;i--){
if(pp[i]){
if(pp[i]>=putere[i]){fol[i]=putere[i];total+=(long long)fol[i];putere[i]=0;}
else{
fol[i]=pp[i];
total=(long long)fol[i]+total;
putere[i]=putere[i]-fol[i];;
}
}
putere[i-1]+=(long long)c*putere[i];
}
fol[0]=putere[0];total+= (long long)fol[0];
}
int main(){
initializare();
transfbaz();
program();
int i;
g<<total<<"\n";
// for(i=0;i<=r;i++) g<<fol[i]<<" ";
for(i=1;i<=n;i++)g<<fol[a[i]]<<" ";
f.close();
g.close();
return 0;
}