Pagini recente » Cod sursa (job #2188495) | Cod sursa (job #5918) | Cod sursa (job #1294387) | Cod sursa (job #2391179) | Cod sursa (job #2496255)
Utilizator |
POPA ION ion.popa |
Data |
20 noiembrie 2019 16:34:54 |
Problema |
Shop |
Scor |
0 |
Compilator |
cpp-64 |
Status |
done |
Runda |
ad_hoc |
Marime |
0.93 kb |
#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();
}