Cod sursa(job #1517947)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 5 noiembrie 2015 01:05:31
Problema Shop Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <cstdio>
#include <algorithm>
using namespace std;

int v[100];
int b[100];
int tt[100];

int sol[10000];

int put( int a, int bb ){

    int p = 1;

    while( bb ){
        p *= a;
        bb--;
    }

    return p;

}

int main()
{

    freopen("shop.in","r",stdin);
    freopen("shop.out","w",stdout);


    int n, i, j, s, t, d, k, l, ma;

    scanf("%d%d%d",&n,&k,&s);
    for( i = 1; i <= n; ++i ){
        scanf("%d%d",&v[i],&b[i]);
        tt[i] = i;
    }

    for( i = 1; i < n; ++i ){
        for( j = i + 1; j <= n; ++j )
        if( v[i] > v[j] ){
            swap(v[i],v[j]);
            swap(b[i],b[j]);
            swap(tt[i],tt[j]);
        }
    }

    l = 0;
    while( s > 0 ){
        for( i = n; i >= 1; --i ){
            if( put(k,v[i]) <= s && b[i] ){
                s -= put(k,v[i]);
                b[i]--;
                sol[tt[i]]++;
                l++;
            }
        }
    }
    printf("%d\n",l);

    for( i = 1; i <= 1000; ++i ){
        if( sol[i] > 0 ) printf("%d ",sol[i]);
    }

    return 0;
}