Cod sursa(job #742740)

Utilizator mosuAdascalitei Radu mosu Data 1 mai 2012 11:41:45
Problema Energii Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <vector>
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <cstring>

using namespace std;

int n;
pair<int, int> p;
vector<pair<int, int> > v;
ifstream fin("energii.in");
ofstream fout("energii.out");

int energie_necesara, cost_minim;

void bkt(int cost_curent, int energie_curenta, int poz)
{
    if(cost_curent<cost_minim && energie_curenta>=energie_necesara)
        cost_minim = cost_curent;
    else
        for(int i=poz+1;i<n;i++)
        {
            cost_curent+=v[i].second;
            energie_curenta+=v[i].first;

            bkt(cost_curent, energie_curenta,i);

            cost_curent-=v[i].second;
            energie_curenta-=v[i].first;
        }
}
int main()
{
    int energ, cost;

    fin>>n;
    fin>>energie_necesara;
    cost_minim = 10001;
    for(int i=0;i<n;i++)
    {
        fin>>energ>>cost;
        p = make_pair(energ, cost);
        v.push_back(p);
    }
    bkt(0, 0, 0);
    fout<<cost_minim;

    return 0;
}