Pagini recente » Cod sursa (job #3242950) | Cod sursa (job #2297098) | Cod sursa (job #2135396) | Cod sursa (job #847465) | Cod sursa (job #41276)
Cod sursa(job #41276)
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
long long l;
long long nr[31];
int ap[31];
int fol[31];
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;
}
inline int maxm()
{
int aux = 0;
for ( int i = 1; i <= n; i++ )
if ( nr[i] > nr[aux] && ( ap[i] - fol[i] ) && nr[i] <= l )
aux = i;
return aux;
}
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] );
}
while ( l ) {
nmon++;
i = maxm();
l -= nr[i];
fol[i]++;
}
printf("%d\n", nmon );
for ( i = 1; i <= n; i++ )
printf("%d ", fol[i] );
printf("\n");
fclose(stdin);
fclose(stdout);
return 0;
}