Pagini recente » Cod sursa (job #3280418) | Cod sursa (job #1104748) | Cod sursa (job #57945) | Cod sursa (job #1553850) | Cod sursa (job #1333700)
#include <iostream>
#include<fstream>
#include<algorithm>
#define nmax 1005
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
int n, c,d[nmax],e[nmax], l, s=1, nr=0;
struct puncte{int a,b;} q[nmax];
int cmp(puncte a,puncte b)
{ if (a.a==b.a)
return a.b>b.b;
else return a.a<b.a; }
int val(int x)
{ int s=1;
for(int i=1; i<=x; i++) s*=c;
return s;
}
int main()
{ f>>n>>c>>l;
for(int i=1; i<=n; i++)
f>>q[i].a>>q[i].b, e[i]=q[i].a;
sort(q+1, q+n+1, cmp);
for(int i=n; i>0; i--)
{ s=val(q[i].a); int aux=q[i].b; int nr1=0;
while(l>=s and aux!=0) l-=s, aux--,nr++,nr1++, d[i]=nr1;
//cout<<l<<" "<<s<<" "<<aux<<" "<<nr1<<" "<<"\n";
d[q[i].a]=nr1;}
g<<nr<<"\n";
for(int i=1; i<=n; i++) g<<d[e[i]]<<" ";
return 0;
}