Cod sursa(job #1061999)

Utilizator Athena99Anghel Anca Athena99 Data 20 decembrie 2013 16:42:21
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

ifstream fin("shop.in");
ofstream fout("shop.out");

typedef long long i64;

const int pmax= 60;
const int nmax= 30;

i64 p[pmax+1], sol[nmax+1];
int a[nmax+1], b[nmax+1];

int main(  ) {
    i64 n, c, l;
    fin>>n>>c>>l;

    p[0]= 1;
    for ( int i= 1; p[i-1]<=l; ++i ) {
        p[i]= p[i-1]*c;
    }

    for ( int i= 1; i<=n; ++i ) {
        fin>>a[i]>>b[i];
    }

    int k= 0;
    for ( int i= 1; i<=n && l>0; ++i ) {
        int max= -1, pos= 0;
        for ( int j= 1; j<=n; ++j ) {
            if ( a[j]>max ) {
                max= a[j];
                pos= j;
            }
        }
        int m= l/p[a[pos]];
        sol[pos]= b[pos];
        if ( m<sol[pos] ) {
            sol[pos]= m;
        }
        k+= sol[pos];
        l= l-sol[pos]*p[a[pos]];

        a[pos]= b[pos]= -1;
    }

    fout<<k<<"\n";
    for ( int i= 1; i<=n; ++i ) {
        fout<<sol[i]<<" ";
    }
    fout<<"\n";

    return 0;
}