Nu aveti permisiuni pentru a descarca fisierul grader_test20.in
Cod sursa(job #473068)
Utilizator | Data | 27 iulie 2010 21:28:29 | |
---|---|---|---|
Problema | Energii | Scor | 5 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.7 kb |
#include<fstream>
using namespace std;
#define nm 100025
#define INF 239581982
ifstream f("energii.in");
ofstream g("energii.out");
int map[1005][nm];
int n,ec,min1,i,j;
int e[1005],ct[1005];
int main()
{ f>>n>>ec;
for(i=1;i<=n;i++)
f>>e[i]>>ct[i];
for(j=0;j<=ec;j++)
map[0][j]=INF;
for(i=1;i<=n;i++)
for(j=0;j<=ec;j++)
{ if(map[i-1][j]!=0)
map[i][j]=min(map[i-1][j],map[i-1][j-e[i]]+ct[i]);
else
if(j-e[i]>=0 && map[i-1][j-e[i]]!=0)
map[i][j]=map[i-1][j-e[i]]+ct[i];
}
min1=INF;
for(i=1;i<=n;i++)
for(j=ec;j<=ec+50;j++)
if(map[i][j]!=0&&map[i][j]!=INF&& map[i][j]<min1)
min1=map[i][j];
g<<"-1";
f.close();
g.close();
return 0;
}