Cod sursa(job #172996)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 7 aprilie 2008 00:11:09
Problema Shop Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.52 kb
#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;
}