Cod sursa(job #1698877)
| Utilizator | 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;
}
