Pagini recente » Cod sursa (job #2240274) | Cod sursa (job #1829533) | Cod sursa (job #2966411) | Cod sursa (job #1312729) | Cod sursa (job #41285)
Cod sursa(job #41285)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
long long l;
long long nr[41];
int ind[41];
int ap[41];
int fol[41];
int c;
int i;
int n, nmon;
inline long long pow( int a, int n )
{
int r = 1;
for ( int i = 1; i <= n; ++i )
r *= a;
return r;
}
bool cmpf( const int &a, const int &b ) {
return ( nr[a] > nr[b] );
}
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%d %d %Ld\n", &n, &c, &l);
for ( i = 1; i <= n; i++ ) {
scanf("%Ld %d\n", &nr[i], &ap[i] );
nr[i] = pow( c, nr[i] );
ind[i] = i;
}
sort( ind+1, ind+n+1, cmpf );
i = 1;
while ( l ) {
++nmon;
if ( ap[ ind[i] ] == fol[ ind[i] ] || nr[ ind[i] ] > l ) ++i;
l -= nr[ ind[i] ];
fol[ ind[i] ]++;
}
printf("%d\n", nmon );
for ( i = 1; i <= n; ++i )
printf("%d ", fol[i] );
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}