Mai intai trebuie sa te autentifici.
Cod sursa(job #1827267)
| Utilizator | Data | 11 decembrie 2016 18:02:47 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.69 kb |
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,w,i,c[5001],val,Min=100000001;
struct data{
int e,c;
}x[1001];
int main(){
fin>>n>>w;
for (i=1;i<=n;i++)
fin>>x[i].e>>x[i].c;
fin.close();
for (i=1;i<=w;i++)
c[i]=Min;
for (i=1;i<=n;i++){
val=w;
while(val>=0){
if (val>=x[i].e){
if (c[val]>c[val-x[i].e]+x[i].c) c[val]=c[val-x[i].e]+x[i].c;
}
else
if (c[val]>x[i].c) c[val]=x[i].c;
val--;
}
}
if (c[w]==100000001) fout<<"-1";
else
fout<<c[w];
fout.close();
return 0;
}
