Pagini recente » Cod sursa (job #2669740) | Cod sursa (job #1640313) | Cod sursa (job #796314) | Cod sursa (job #552641) | Cod sursa (job #2007346)
#include <fstream>
#include <cmath>
#include <algorithm>
#define LL long long
using namespace std;
ifstream fi("shop.in");
ofstream fo("shop.out");
struct triplet
{
LL val,nr,indice;
};
LL n,c,l;
triplet X[35];
LL tip[35];
bool criteriu(triplet a,triplet b)
{
return a.val>b.val;
}
int main()
{
fi>>n>>c>>l;
for (int i=1; i<=n; i++)
{
fi>>X[i].val>>X[i].nr;
X[i].val=pow(c,X[i].val);
X[i].indice=i;
}
sort(X+1,X+n+1,criteriu);
LL curent=1,total=0;
while (l)
{
LL luate=min(X[curent].nr,l/X[curent].val);
l-=luate*X[curent].val;
tip[X[curent].indice]=luate;
total+=luate;
curent++;
}
fo<<total<<"\n";
for (int i=1; i<=n; i++)
fo<<tip[i]<<" ";
fi.close();
fo.close();
return 0;
}