Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Statisticile problemei Kbiti | Monitorul de evaluare | Cod sursa (job #735331)
Cod sursa(job #735331)
#include<algorithm>
#include<fstream>
#define nr second.first
#define xxl long long
#define ind second.second
#define PP pair //scurtez scrierea:D
#define min(a,b) (a)>(b)?(b):(a)
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
PP<int,PP<int,int> > A[100];
xxl c,s,p=1,i,n,nlr,k=1;
xxl FOR[100],final[100];
inline int comp(int a,int b)
{
return a<b;
}
int main()
{
f>>n>>c>>s;
for(i=1;i<=n;i++)
f>>A[i].first>>A[i].nr,A[i].ind=i;
sort(A+1,A+n+1);
for(i=0;i<=A[n].first;i++)
{
if(i==A[k].first)
FOR[k++]=p;
p*=c;
}
for(i=n;i&&s;i--)
{
final[A[i].ind]=min(A[i].nr,s/FOR[i]);
s-=final[A[i].ind]*FOR[i];
nlr+=final[A[i].ind];
}
g<<nlr<<'\n';
for(i=1;i<=n;i++)
g<<final[i]<<" ";
return 0;
}