Pagini recente » Cod sursa (job #143661) | Cod sursa (job #1787282) | Cod sursa (job #1144960) | Cod sursa (job #2875180) | Cod sursa (job #480894)
Cod sursa(job #480894)
#include<fstream>
#include<algorithm>
#define NMAX 30
using namespace std;
struct shop{
int a; int b; int o; int fr;long long val;
}x[NMAX];
int n, c, i, j;
long long L, nr;
int cmp(shop w, shop u)
{
return w.a<u.a;
}
int cmp1(shop w, shop u)
{
return w.o<u.o;
}
int minim(long long w, long long u)
{
if (w<u) return w;
return u;
}
int main()
{
ifstream f("shop.in");
ofstream g("shop.out");
f>>n>>c>>L;
for(i=1; i<=n; ++i)
{
f>>x[i].a>>x[i].b;
x[i].o=i;
}
sort(x+1, x+n+1, cmp);
x[0].a=0;x[0].val=1;
for(i=1; i<=n; ++i)
{
x[i].val=x[i-1].val;
for(j=x[i-1].a+1; j<=x[i].a; ++j) x[i].val*=c;
}
for(i=n; i>=1; i--)
{
x[i].fr=minim(x[i].b, L/x[i].val);
nr+=x[i].fr;
L-=x[i].fr*x[i].val;
}
sort(x+1, x+n+1, cmp1);
g<<nr<<"\n"<<x[1].fr;
for(i=2; i<=n; ++i) g<<" "<<x[i].fr;
g<<"\n";
f.close();
g.close();
return 0;
}