Pagini recente » Cod sursa (job #2353091) | Cod sursa (job #2207657) | Cod sursa (job #62048) | Profil FlorinIoan | Cod sursa (job #1242431)
#include <fstream>
#include <cmath>
#include <iostream>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long n,c,l;
long long val[31];
long long rez[31];
int poz[31];
inline long long putere(int x)
{
long long t = c;
if (x == 0) return 1;
for (int i=1;i<x;i++)
t *= c;
return t;
}
inline long long min(long long a,long long b)
{
if (a < b) return a;
return b;
}
int main()
{
f >> n >> c >> l ;
for (int i=1;i<=n;i++)
{
long long a,b;
f >> a >> b;
val[a] = b;
poz[i] = a;
}
int i = 30;
long long mon = 0;
while (l)
{
if (val[i])
{
long long temp,put;
put = putere(i);
temp = min ( val[i] , l / put);
mon += temp;
rez[i] = temp;
l -= (long long)(put * temp);
}
i--;
}
g << mon << "\n";
for (int j=1;j<=n;j++)
g << rez[ poz[j] ] << " ";
return 0;
}