Pagini recente » Cod sursa (job #2942910) | Cod sursa (job #1054215) | Cod sursa (job #2706292) | Cod sursa (job #3210283) | Cod sursa (job #1061999)
#include <fstream>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
typedef long long i64;
const int pmax= 60;
const int nmax= 30;
i64 p[pmax+1], sol[nmax+1];
int a[nmax+1], b[nmax+1];
int main( ) {
i64 n, c, l;
fin>>n>>c>>l;
p[0]= 1;
for ( int i= 1; p[i-1]<=l; ++i ) {
p[i]= p[i-1]*c;
}
for ( int i= 1; i<=n; ++i ) {
fin>>a[i]>>b[i];
}
int k= 0;
for ( int i= 1; i<=n && l>0; ++i ) {
int max= -1, pos= 0;
for ( int j= 1; j<=n; ++j ) {
if ( a[j]>max ) {
max= a[j];
pos= j;
}
}
int m= l/p[a[pos]];
sol[pos]= b[pos];
if ( m<sol[pos] ) {
sol[pos]= m;
}
k+= sol[pos];
l= l-sol[pos]*p[a[pos]];
a[pos]= b[pos]= -1;
}
fout<<k<<"\n";
for ( int i= 1; i<=n; ++i ) {
fout<<sol[i]<<" ";
}
fout<<"\n";
return 0;
}