Pagini recente » Cod sursa (job #1779123) | Cod sursa (job #688343) | Cod sursa (job #2577634) | Cod sursa (job #852529) | Cod sursa (job #805689)
Cod sursa(job #805689)
#include <iostream>
#include <fstream>
#include <algorithm>
#define putere first
#define numar second
#define x first
#define y second
#define p pair<pair <int,int> , pair<int,int> >
using namespace std;
p a[32];
int ap[32];
bool cmp(p a ,p b)
{
return a.y>b.y;
}
int lgput(int nr,int put)
{
if(put==0)
return 1;
if(put==1)
return nr;
if(put%2==0)
{
int rez=lgput(nr,put/2);
return rez*rez;
}
else
return nr*lgput(nr,put-1);
}
int main()
{
int n,c,l;
ifstream f("shop.in");
ofstream g("shop.out");
f>>n>>c>>l;
for(int i=1;i<=n;i++)
{
f>>a[i].x.putere>>a[i].x.numar;
a[i].y.x=1;
a[i].y.y=i;
a[i].y.x=lgput(c,a[i].x.putere);
// cout<<a[i].y.x<<endl;
}
sort(a+1,a+n+1,cmp);
int S=0;
int P=0;
while(S!=l)
{
for(int i=1;i<=n;i++) // incepem cu cele mai mari
{
int dist=l-S;
int k=dist/a[i].y.x;
k=min(k,a[i].x.numar);
S+=k*a[i].y.x;
P+=k;
ap[a[i].y.y]=k;
}
}
g<<P<<endl;
for(int i=1;i<=n;i++)
g<<ap[i]<<" ";
return 0;
}