Pagini recente » Cod sursa (job #3188987) | Cod sursa (job #2983601) | Cod sursa (job #864987) | Cod sursa (job #231588) | Cod sursa (job #2593027)
#include <bits/stdc++.h>
using namespace std;
ifstream ci("shop.in");
ofstream cou("shop.out");
struct date{
long long val;
int nr;
};
long long l;
int n,c,k;
date v[50];
date copie[50];
long long ridlaput(int a,int b){
long long r=1;
while(b){
if(b%2){
r*=a;
}
a=a*a;
b/=2;
}
return r;
}
bool cmp(date a,date b){
return a.val>b.val;
}
void citire(){
ci>>n>>c>>l;
int i,ai,bi;
for(i=1;i<=n;i++){
ci>>ai>>bi;
v[i].nr=bi;
v[i].val=ridlaput(c,ai);
copie[i]=v[i];
}
sort(v+1,v+n+1,cmp);
}
void rez(){
int fin[50];
int p=0,i,j;
int nrmonezi=0;
//cout<<l<<"\n";
for(i=1;i<=n;i++){
if(v[i].val*v[i].nr>=l){
nrmonezi+=l/v[i].val;
fin[++p]=l/v[i].val;
l=l%v[i].val;
}else{
nrmonezi+=v[i].nr;
fin[++p]=v[i].nr;
l-=v[i].val*v[i].nr;
}
}
cou<<nrmonezi<<"\n";
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(copie[i].val==v[j].val){
cou<<fin[j]<<" ";
}
}
}
}
int main()
{
citire();
rez();
return 0;
}