Pagini recente » Cod sursa (job #4236) | Cod sursa (job #514494) | Cod sursa (job #1227913) | Cod sursa (job #1626088) | Cod sursa (job #718694)
Cod sursa(job #718694)
#include <algorithm>
#include <fstream>
#define nr second.first
#define ind second.second
#define min(a,b) (a)>(b)?(b):(a)
using namespace std;
pair<int,pair<int,int> > a[35];
long long c,s,p=1,i,n,pro[35],cont[35],nlr,k=1;
int main ()
{ifstream f("shop.in");
ofstream g("shop.out");
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)
pro[k++]=p;
p*=c;}
for(i=n;i&&s;i--)
{cont[a[i].ind]=min(a[i].nr,s/pro[i]);
s-=cont[a[i].ind]*pro[i];
nlr+=cont[a[i].ind];}
g<<nlr<<'\n';
for(i=1;i<=n;i++)
g<<cont[i]<<" ";
f.close(); g.close();
return 0;
}