Pagini recente » Cod sursa (job #1804501) | Cod sursa (job #2692158) | Cod sursa (job #3229591) | Cod sursa (job #2720369) | Cod sursa (job #874029)
Cod sursa(job #874029)
#include<algorithm>
#include<math.h>
#include<fstream>
#define MAX_N 35
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int number,n,c,v[MAX_N],v1[MAX_N],ind[MAX_N],used[MAX_N];
long long l,sol;
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 )
{
l-=1LL*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 )
{
f>>n>>c>>l;
for( long long index(1); index <= n ; ++index)
{
f>>v[index]>>v1[index];
ind[index]=index;
}
solve();
write();
return 0;
}