Cod sursa(job #1267800)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 20 noiembrie 2014 12:26:23
Problema Problema rucsacului Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<fstream>
using namespace std;
int n, i, g, maxim, j;
int f[100001];
pair<int, int> v[5001];
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int main(){
    fin>> n >> g;
    for(i = 1; i <= n; i++){
        fin>> v[i].first >> v[i].second;
    }
    for(i = 1; i <= 100000; i++){
        f[i] = 2000000000;
    }
    for(j = 1; j <= n; j++){
        for(i = 100000; i >= 0; i--){
            if(f[i] != 2000000000 && i + v[j].second <= 100000){
                if(f[i] + v[j].first <= g){
                    if(f[i] + v[j].first < f[i+v[j].second]){
                        f[i+v[j].second] = f[i] + v[j].first;
                    }
                }
            }
        }
    }
    for(i = 100000; i >= 0; i--){
        if(f[i] !=  2000000000 ){
            maxim = i;
            break;
        }
    }
    fout<< maxim;
    return 0;
}