Pagini recente » Cod sursa (job #26521) | Cod sursa (job #1672626) | Cod sursa (job #2943131) | Cod sursa (job #28135) | Cod sursa (job #37911)
Cod sursa(job #37911)
#include<fstream.h>
#include<math.h>
long long a[31],b[31],n,c,l,i,j,x,gasit,nr,d[31],e[31],t;
void quik(int p,int q)
{
long long aux,i,j,t;
if(p<q)
{
i=p;
j=q;
t=1;
do
{
if(a[i]<a[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
aux=a[i];
a[i]=a[j];
a[j]=aux;
t=!t;
}
if(t)
j--;
else
i++;
}while(i!=j);
quik(p,i-1);
quik(i+1,q);
}
}
int main()
{
ifstream f("shop.in");
ofstream g("shop.out");
f>>n>>c>>l;
for(i=1;i<=n;i++)
f>>a[i]>>b[i];
for(i=1;i<=n;i++)
e[i]=a[i];
quik(1,n);
i=1;
while(l>0)
{
gasit=0;
j=0;
x=pow(c,a[i]);
while(j<b[i]&&gasit==0)
{
if(l-x>=0)
{
l=l-x;
j++;
nr++;
}
else
gasit=1;
}
if(j!=0)
{
for(t=1;t<=n;t++)
if(e[t]==a[i])
d[t]=j;
}
i++;
}
g<<nr<<"\n";
for(i=1;i<=n;i++)
if(d[i]!=0)
g<<d[i]<<" ";
return 0;
}