Cod sursa(job #1925601)

Utilizator andreigasparoviciAndrei Gasparovici andreigasparovici Data 13 martie 2017 14:15:18
Problema Energii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<cstdio>
int G,w,s,a[1010][5010];struct obiect{int p,c;}ob[5010];int main(){freopen("energii.in","r",stdin);freopen("energii.out","w",stdout);scanf("%d%d",&G,&w);for(int i=1;i<=G;i++){scanf("%d%d",&o[i].p,&o[i].c);s+=o[i].p;}if(s<w){puts("-1");}else{for(int i=0;i<=G;i++)for(int j=0;j<=w;j++)a[i][j]=0x3f3f3f3f;for(int i=1;i<=G;i++){for(int j=0;j<=w;j++){if(j<=o[i].p)a[i][j]=(a[i-1][j]<o[i].c)?a[i-1][j]:o[i].c;if(j>o[i].p)a[i][j]=(a[i-1][j]<a[i-1][j-o[i].p]+o[i].c)?a[i-1][j]:a[i-1][j-o[i].p]+o[i].c;}}printf("%d\n",a[G][w]);}return 0;}