Pagini recente » Cod sursa (job #2183502) | Cod sursa (job #310258) | Cod sursa (job #818685) | Cod sursa (job #108387) | Cod sursa (job #1746160)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fi("shop.in");
ofstream fo("shop.out");
long long n,c,i,j,s,poz,monezi;
struct a {long long nr;long long cap;long long initial;long long folosite;} x[40];
long long cmp (a A, a B){ return A.nr<B.nr; }
long long putere(long long baza, long long expon)
{if(expon==0) return 1;
long long rez=1;
for(long long i=1;i<=expon;i++) rez*=baza;
return rez;
}
int main()
{
fi>>n>>c>>s;
for(i=1;i<=n;i++) {fi>>x[i].nr>>x[i].cap;
x[i].initial=i;
}
sort(x+1,x+n+1,cmp);
for(i=1;i<=n;i++) x[i].nr=putere(c,x[i].nr);
poz=n;
while(s)
{ while(x[poz].cap>=1 and s-x[poz].nr>=0) {s-=x[poz].nr;
x[poz].cap--;
x[poz].folosite++;
monezi++;}
poz--;
}
fo<<monezi<<'\n';
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(x[j].initial==i) fo<<x[j].folosite<<" ";
//fo<<'\n';
//for(i=1;i<=n;i++) fo<<x[i].nr<<" "<<x[i].cap<<" "<<x[i].initial<<" "<<x[i].folosite<<'\n';
return 0;
}