Pagini recente » Cod sursa (job #392751) | Cod sursa (job #2458786) | Cod sursa (job #2255392) | Cod sursa (job #2498833) | Cod sursa (job #873281)
Cod sursa(job #873281)
#include<cstdio>
#include<algorithm>
#include<math.h>
#define MAX_N 35
FILE *f=fopen("shop.in","r");
FILE *g=fopen("shop.out","w");
using namespace std;
long long v[MAX_N],n,l,c,v1[MAX_N],ind[MAX_N],used[MAX_N],number;
bool cmp(int i,int j)
{
return v[i]>v[j];
}
inline void solve( void )
{
sort(ind+1,ind+n+1,cmp);
for(int index(1); index <= n ; ++index)
{
while(v1[ind[index]]&&l>=pow(c,v[ind[index]]))
{
l-=pow( c , v[ind[index]] );
used[ind[index]]++;
number++;
v1[ind[index]]--;
}
}
}
inline void write( void )
{
fprintf(g,"%d\n",number);
for(int i(1); i <= n ; ++i)
fprintf(g,"%d ",used[i]);
}
int main( void )
{
fscanf(f,"%d%d%d",&n,&c,&l);
for( int index(1); index <= n ; ++index)
{
fscanf(f,"%d%d",&v[index],&v1[index]);
ind[index]=index;
}
solve();
write();
return 0;
}