Pagini recente » Cod sursa (job #41315) | Cod sursa (job #530597) | Cod sursa (job #307233) | Cod sursa (job #250212) | Cod sursa (job #727910)
Cod sursa(job #727910)
//Include
#include <fstream>
#include <set>
using namespace std;
//Clase
class descrescator
{
public:
bool operator() (int a, int b)
{ return (a>b); }
};
//Variabile
ifstream in("zebughil.in");
ofstream out("zebughil.out");
int teste = 3;
int n, capacitate;
int citit;
int dimensiuneRamasa;
int nrCamioane;
multiset<int, descrescator > blocuri;
multiset<int, descrescator >::iterator it, end, bound;
//Main
int main()
{
while(teste--)
{
in >> n >> capacitate;
for(int i=1 ; i<=n ; ++i)
{
in >> citit;
blocuri.insert(citit);
}
end = blocuri.end();
for(nrCamioane=0 ; !blocuri.empty() ; ++nrCamioane)
{
dimensiuneRamasa = capacitate;
while( (bound = blocuri.lower_bound(dimensiuneRamasa)) != end)
{
dimensiuneRamasa -= *bound;
blocuri.erase(bound);
}
}
out << nrCamioane << '\n';
}
in.close();
out.close();
return 0;
}