Cod sursa(job #1698877)

Utilizator alex90001alex ilioi alex90001 Data 5 mai 2016 16:55:27
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream f("energii.in");
ofstream g("energii.out");

int st[100],n,k,minim=5001,w,v[100][100];

int valid(int k)
{
    for(int i=1;i<k;i++)
        if(st[i]==st[k])
            return 0;
    return 1;
}

int BK(int k)
{
    for(int i=1;i<=n;i++)
        {
            st[k]=i;
            if(valid(k)==1)
                if(k==n)
                    {
                       int j=1,s=0,s1=0;
                       while(s<w)
                       {
                            s=s+v[st[j]][1];
                            s1=s1+v[st[j]][2];
                            j++;
                       }
                       if(s1<minim) minim=s1;
                    }
            else
                BK(k+1);
        }
}

int main()
{
    f>>n;
    f>>w;
    for(int i=1;i<=n;i++)
        f>>v[i][1]>>v[i][2];
    BK(1);
    cout<<minim;
}