Cod sursa(job #1012167)
| Utilizator | Data | 18 octombrie 2013 13:12:28 | |
|---|---|---|---|
| Problema | Energii | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include<fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int inf,g,w,i,j,e,c,a[5002],b[3][1002];
int main(){
inf=2000000000;
in>>g>>w;
for(i=1;i<=w;i++)
a[i]=inf;
for(i=1;i<=g;i++){
in>>e>>c;
for(j=w;j>=0;j--){
if(a[j]!=inf){
if(j+e>w){
if(a[j]+c<a[w])
a[w]=a[j]+c;}
else
if(a[j]+c<a[j+e])
a[j+e]=a[j]+c;}
}}
if(a[w]!=inf)
out<<a[w];
else out<<-1;
return 0;}
