Cod sursa(job #874029)

Utilizator superman_01Avramescu Cristian superman_01 Data 7 februarie 2013 20:37:08
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include<algorithm>
#include<math.h>
#include<fstream>
 
#define MAX_N 35
 
 
 
 
using namespace std;
 
ifstream f("shop.in");
ofstream g("shop.out");
 
 int number,n,c,v[MAX_N],v1[MAX_N],ind[MAX_N],used[MAX_N];
long long  l,sol;
 
long long cmp(long long  i,long long j)
{
    return v[i]>v[j];    
}
 
 
inline void solve( void )
{
    sort(ind+1,ind+n+1,cmp);
     
    for(long long index(1); index <= n ;  ++index)
    {
         
        if(l==0)
            break;
        while( v1[ind[index]] && l >= pow(c,v[ind[index]]) &&l  )
        {
            l-=1LL*pow( c , v[ind[index]] );
            used[ind[index]]++;
            number++;
            v1[ind[index]]--;
        }
         
         
    }
     
     
}
 
 
 
inline void write( void )
{
    g<<number<<"\n";
    for(int i(1); i <= n ; ++i)
        g<<used[i]<<" ";
     
     
}
 
int main( void )
{
     
     
    f>>n>>c>>l;
    for( long long index(1); index <=  n ; ++index)
        {
            f>>v[index]>>v1[index];
            ind[index]=index;
        }
    solve();
    write();
    return 0;
}