Pagini recente » Cod sursa (job #2028178) | Cod sursa (job #2849802) | Cod sursa (job #3223385) | Cod sursa (job #2149493) | Cod sursa (job #997469)
Cod sursa(job #997469)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#define MAX_N 31
using namespace std;
int N, C, L , solution[MAX_N] ;
struct moneda
{
int A ;
int B ;
int tip ;
} ;
moneda v[MAX_N] ;
bool comp( moneda x , moneda y )
{
return (x.A > y.A) ;
}
void citire()
{
freopen("shop.in","r",stdin);
scanf("%d %d %d", &N , &C , &L) ;
int i ;
for( i = 1 ; i <= N ; i++ )
{
scanf("%d %d", &v[i].A , &v[i].B ) ;
v[i].tip = i ;
}
}
int nr_monezi = 0 ;
void solve()
{
int i, used , aux ;
for( i = 1 ; i <= N ; i++ )
{
aux = L / pow(C,v[i].A) ;
used = min( v[i].B , aux ) ;
nr_monezi += used ;
L -= used * pow(C,v[i].A) ;
solution[v[i].tip] = used ;
}
}
int main()
{
freopen("shop.out" , "w", stdout) ;
citire() ;
sort( v+1 , v+N+1 , comp ) ;
solve() ;
printf("%d\n", nr_monezi) ;
for( int i = 1 ; i <= N ; i++ )
{
printf("%d ", solution[i]) ;
}
return 0 ;
}