Pagini recente » Cod sursa (job #1315056) | Cod sursa (job #721894) | Cod sursa (job #836110) | Monitorul de evaluare | Cod sursa (job #1702247)
# include <fstream>
# include <algorithm>
# define a first.first
# define b first.second
# define c second
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
pair <pair<long long,long long>,long long> v[33];
long long d[33],sol[33],n,c,l,i,s;
int main () {
fin>>n>>c>>l;
for(i=1;i<=n;i++){
fin>>v[i].a>>v[i].b;
v[i].c=i;
}
sort(v+1,v+n+1);
d[0]=1;
for(i=1;i<=v[n].a;i++)
d[i]=d[i-1]*c;
i=n;
while(l!=0){
if(l/d[v[i].a]<v[i].b){
sol[v[i].c]=l/d[v[i].a];
l-=(l/d[v[i].a])*d[v[i].a];
}
else{
sol[v[i].c]=v[i].b;
l-=v[i].b*d[v[i].a];
}
s+=sol[v[i].c];
i--;
}
fout<<s<<"\n";
for(i=1;i<=n;i++)
fout<<sol[i]<<" ";
fout<<"\n";
return 0;
}