Cod sursa(job #1947320)

Utilizator braisaMiron Raisa braisa Data 30 martie 2017 21:44:29
Problema Problema rucsacului Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<bits/stdc++.h>
 
using namespace std;
 
struct cell{
    int g,p;
};
 
cell a[10000];
int mp[2][10002],n,x,l,g,p,c,pn,lp,lc;
 
int main(){
	ifstream cin("rucsac.in");
    ofstream cout("rucsac.out");
    cin>>n>>x;
    for(l=1;l<=n;l++)
        cin>>a[l].g>>a[l].p;
    lp=0;
	lc=1;
    for (l=1;l<=n;l++){
    for (c=1;c<=x;c++)
        if(a[l].g<=c){               
            pn=a[l].p+mp[lp][c-a[l].g];  
            if(pn>mp[lp][c])           
               mp[lc][c]=pn;            
        else
        mp[lc][c]=mp[lp][c];      
        }
    else
        mp[lc][c]=mp[lp][c];        
    lp=1-lp; 
	lc=1-lc;
    }
    cout<<mp[lp][x];                  
    return 0;
}