Pagini recente » Cod sursa (job #725873) | Cod sursa (job #171186) | Cod sursa (job #2821120) | Cod sursa (job #2756886) | Cod sursa (job #660055)
Cod sursa(job #660055)
#include <iostream.h>
#include <fstream.h>
#include <math.h>
#include <conio.h>
int main()
{
ifstream f("f1.txt");
ofstream g("f2.txt");
struct bancnote
{
int tip;
int cantitate;
};
bancnote bancnoteDisponibile[1000] = {0};
int bancnoteFolosite[100] = {0};
int NumarBancnote = 0;
int C = 0;
int sumaNecesara = 0;
f>>NumarBancnote>>C>>sumaNecesara;
for (int i = 0; i < NumarBancnote; ++i)
{
f>>bancnoteDisponibile[i].tip;
bancnoteDisponibile[i].tip = pow(C , bancnoteDisponibile[i].tip);
f>>bancnoteDisponibile[i].cantitate;
}
for(int i = 0; i < NumarBancnote; ++i)
{
int aux = 0;
for(int j = 0; j <= i; ++j)
if(bancnoteDisponibile[j].tip < bancnoteDisponibile[i].tip)
{
aux = bancnoteDisponibile[i].tip;
bancnoteDisponibile[i].tip = bancnoteDisponibile[j].tip;
bancnoteDisponibile[j].tip = aux;
aux = bancnoteDisponibile[i].cantitate;
bancnoteDisponibile[i].cantitate = bancnoteDisponibile[j].cantitate;
bancnoteDisponibile[j].cantitate = aux;
}
}
int i = 0;
int bancnoteFolositeTotal = 0;
while(sumaNecesara)
{
int bancnoteNecesare = sumaNecesara / bancnoteDisponibile[i].tip;
if(bancnoteNecesare > bancnoteDisponibile[i].cantitate)
{
bancnoteFolosite[i] = bancnoteDisponibile[i].cantitate;
}
else
{
bancnoteFolosite[i] = bancnoteNecesare;
}
sumaNecesara -= bancnoteFolosite[i] * bancnoteDisponibile[i].tip;
bancnoteFolositeTotal += bancnoteFolosite[i];
++i;
}
g<<bancnoteFolositeTotal<<endl;
for(int k = i - 1 ; k >= 0; --k )
g<<bancnoteFolosite[k]<<" ";
return 0;
}