Pagini recente » Cod sursa (job #2487567) | Cod sursa (job #2416548) | Rating Amarandei Matei Alexandru (Alex_Amarandei) | Cod sursa (job #355697) | Cod sursa (job #783087)
Cod sursa(job #783087)
#include<cstdio>
#include<vector>
#include<algorithm>
#include<cmath>
using namespace std;
#define mp make_pair
#define pb push_back
#define fs first
#define sc second
bool funct( pair<long long,long long> x,pair<long long,long long> y)
{
return(x.first<y.first);
}
vector <pair <long long , long long> > v;
int main()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
long long l,b[31],a[31],nr[31]={0};
int c,n,ind,cont=0;
scanf("%d %d %lld",&n,&c,&l);
//printf("%d %d %lld\n",n,c,l);
for(int i=0;i<n;++i)
{
scanf("%lld %lld",&a[i],&b[i]);
//printf("%lld %lld\n",a[i],b[i]);
v.pb( mp (a[i],b[i]) );
}
sort(v.begin(),v.end(),funct);
for(int i=0;i<n;++i)
{
printf("%lld %lld\n",v[i].fs,v[i].sc);
}
ind=n-1;
while(l&&ind>=0)
{
for(int i=0;i<v[ind].sc;++i)
{
if((l-pow((long double) c,(long double) v[ind].fs))>=0)
{
++nr[ind];
++cont;
l=l-pow((long double) c,(long double)v[ind].fs);
}
}
--ind;
}
printf("%d\n",cont);
for(int i=0;i<n;++i)
{
printf("%d ",nr[i]);
}
return 0;
}