Pagini recente » Cod sursa (job #3226892) | Cod sursa (job #1344868) | Cod sursa (job #2355109) | Cod sursa (job #1626265) | Cod sursa (job #1242382)
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
unsigned long long n,c,l,aux;
unsigned long long val[31];
unsigned long long rez[31];
int poz[31];
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;
}
aux = 0; int i = 30;
long long mon = 0;
while (aux < l)
{
for (int j=1;(j<=val[i]) && (aux+pow(c,i) <= l) ;j++)
{
aux += pow(c,i);
rez[i] ++;
mon ++;
}
i--;
}
g << mon << "\n";
for (int i=1;i<=n;i++)
g << rez[ poz[i] ] << " ";
return 0;
}
/*#include <fstream>
#include <cmath>
#include <iostream>
#include <algorithm>
typedef unsigned long long big;
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int N,C,R;
big L;
struct plata{
int poz;
big val;
big num;
};
plata A[31];
big REZ[31];
inline big putere(int p)
{
if (p == 0) return 1;
big temp = C;
for (int i=1; i<p ; i++)
temp *= C;
return temp;
}
int cmp(plata A, plata B)
{
return A.val>B.val;
}
int main()
{
f >> N >> C >> L ;
for (int i=1; i <= N ; i++)
{
int x,y;
f >> x >> y;
A[i].poz = i;
A[i].val = putere(x);
A[i].num = y;
}
sort(A+1,A+N+1,cmp);
int i = 1;
while (L)
{
big temp ;
temp = L / A[i].val;
temp = min(temp,A[i].num);
REZ[A[i].poz] = temp;
L -= A[i].val * temp;
R += temp;
i++;
}
g << R << '\n';
for (int i=1; i<= N ; i++)
if (REZ[i]) g << REZ[i] << ' ';
/*
for (int i=1; i <= N ; i++)
cout << A[i].val << " " << A[i].num << '\n';
*/
return 0;
}
*/