Cod sursa(job #1400710)
| Utilizator | Data | 25 martie 2015 13:27:13 | |
|---|---|---|---|
| Problema | Energii | Scor | 5 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.46 kb |
#include <iostream>
#include <fstream>
using namespace std;
struct generator
{
int w, c;
};
int main()
{
ifstream be("energii.in");
ofstream ki("energii.out");
int g, w;
be >> g >> w;
generator asd[g];
be >> asd[0].w >> asd[0].c;
for(int i = 1; i < g; i++)
{
int wi, ci;
be >> wi >> ci;
int optw = wi;
int optc = ci;
for(int j = 0; j < i; j++)
{
if(optw >= w)
{
if(asd[j].w+wi >= w && asd[j].c+ci < optc)
{
optw = asd[j].w+wi;
optc = asd[j].c+ci;
}
}
else
{
if(asd[j].w+wi >= w)
{
optw = asd[j].w+wi;
optc = asd[j].c+ci;
}
else
{
if(asd[j].w+wi > optw)
{
optw = asd[j].w+wi;
optc = asd[j].c+ci;
}
}
}
}
asd[i].w = optw;
asd[i].c = optc;
}
for(int j = 0; j < g; j++)
cout << asd[j].w << " ";
cout << endl;
for(int j = 0; j < g; j++)
cout << asd[j].c << " ";
if(asd[g-1].w < w)
{
ki << -1;
}
else
ki << asd[g-1].c;
return 0;
}
