Cod sursa(job #1435805)
Utilizator | Tamio Vesa Nakajima tamionv | Data | 14 mai 2015 16:58:49 |
---|---|---|---|
Problema | Energii | Scor | 95 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
#include <vector>
using namespace std;
constexpr int inf = (1<<30);
int main(){
ifstream in("energii.in");
ofstream out("energii.out");
int n = 0, g = 0;
in >> n >> g;
vector<int> v(g, inf);
v[0] = 0;
int rez = inf;
for(int i = 0, e = 0, c = 0; i < n; ++i){
in >> e >> c;
for(int j = g-1; j >= 0 && j >= g-e; --j){
if(v[j] != inf){
rez = min(rez, v[j]+c); } }
for(int j = g-e-1; j >= 0; --j){
if(v[j] != inf && v[j]+c < v[j+e]){
v[j+e] = v[j]+c; } } }
out << rez;
return 0; }