Cod sursa(job #45623)

Utilizator drag0shSandulescu Dragos drag0sh Data 1 aprilie 2007 19:04:35
Problema Shop Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream.h>
#include <math.h>
ifstream f("shop.in");
ofstream g("shop.out");
long long n,c,a[31],i,d[32];
long long b[32],l,x,s,y;
int swapp (long long &a,long long &b){
    int x=a;
    a=b;
    b=x;
    return 0;
}
int main(){
    f>>n>>c>>l;
    for(i=1;i<=n;i++){f>>a[i]>>b[i];d[i]=i;}
    do{
    x=0;
    for(i=1;i<n;i++)if(a[i]<a[i+1]){swapp(a[i],a[i+1]);x=1;swapp(b[i],b[i+1]);swapp(d[i],d[i+1]);}}
    while(x);
     for(i=1;i<=n;i++){
                      x=l/pow(c,a[i]);
                      if(x<=b[i]){l=l-x*pow(c,a[i]);s+=x;b[i]=x;}
                             else {l-=b[i]* pow(c,a[i]);s+=b[i];}
                       if(l==0)    break;
                       }      
      for(j=i+1;i<=n;i++)b[i]=0;                                       
    do{
    x=0;
    for(i=1;i<n;i++)if(d[i]>d[i+1]){;x=1;swapp(b[i],b[i+1]);swapp(d[i],d[i+1]);}}
    while(x);                
    
    g<<s<<'\n';   
    
    for(i=1;i<=n;i++)g<<b[i]<<" ";                                              
    g.close();
    f.close();
    return 0;
}