Pagini recente » Cod sursa (job #1761496) | Cod sursa (job #2058782) | Cod sursa (job #1468633) | Cod sursa (job #2401462) | Cod sursa (job #873295)
Cod sursa(job #873295)
#include<cstdio>
#include<algorithm>
#include<math.h>
#include<fstream>
#define MAX_N 150
FILE *f=fopen("shop.in","r");
using namespace std;
ofstream g("shop.out");
long long int v[MAX_N],n,l,c,v1[MAX_N],ind[MAX_N],used[MAX_N],number;
long long cmp(long long i,long long j)
{
return v[i]>v[j];
}
inline void solve( void )
{
sort(ind+1,ind+n+1,cmp);
for(long long index(1); index <= n ; ++index)
{
if(l==0)
break;
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 )
{
g<<number<<"\n";
for(int i(1); i <= n ; ++i)
g<<used[i]<<" ";
}
int main( void )
{
fscanf(f,"%I64d %I64d %I64d", &n, &c, &l);
for( long long index(1); index <= n ; ++index)
{
fscanf(f,"%I64d %I64d",&v[index],&v1[index]);
ind[index]=index;
}
solve();
write();
return 0;
}