Pagini recente » Cod sursa (job #731956) | Cod sursa (job #1736184) | Cod sursa (job #2110620) | Cod sursa (job #3134433) | Cod sursa (job #2496254)
#include <bits/stdc++.h>
using namespace std;
ifstream f("zaharel.in");
ofstream g("zaharel.out");
int n,c,L,a[31],t[31],i,j,v[31],w[31],z[31],nr,nrt,nrb[31];
void citire()
{
f>>n>>c>>L;
for(i=1;i<=n;i++)
{
f>>v[i]>>nrb[i];w[i]=i;
a[i]=pow(c,v[i]);
}
}
void sortare()
{
for(i=1;i<=n-1;i++)
for(int j=i+1;j<=n;j++)
if(a[i]<a[j])
{swap(a[i],a[j]);swap(w[i],w[j]);swap(nrb[i],nrb[j]);}
}
void sortare1()
{
for(i=1;i<=n-1;i++)
for(int j=i+1;j<=n;j++)
if(w[i]>w[j])
{swap(w[i],w[j]);swap(z[i],z[j]);swap(nrb[i],nrb[j]);}
}
void greedy()
{
for(i=1;i<=n;i++)
{
nr=min(nrb[i],L/a[i]);
L=L-nr*a[i];
z[i]=nr;
nrt+=nr;
}
}
void afisare()
{
for(i=1;i<=n;i++)
g<<z[i]<<" ";
}
int main()
{citire();
sortare();
greedy();
g<<nrt<<endl;
sortare1();
afisare();
}