Cod sursa(job #3244621)

Utilizator Vornicu_Stefanvornicu Vornicu_Stefan Data 25 septembrie 2024 18:47:59
Problema Problema rucsacului Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int g[1001], p[1001], n, gmax, v[1001], sp, sg, pmax=-1;
void citire()
{
    in>>n>>gmax;
    for(int i=1; i<=n; ++i)
        in>>g[i]>>p[i];
}
void verificare()
{
    sp=0;
    sg=0;
    for(int i=1; i<=n; ++i)
        if(v[i]==2)
        {
            sg+=g[i];
            sp+=p[i];
        }
    if(sg<=gmax && sp>=pmax)
        pmax=sp;
}
void bt()
{
    int k=1;
    v[k]=0;
    while(k)
    {
        while(v[k]<2)
        {
            v[k]++;
            if(k==n)
                verificare();
            else
            {
                k++;
                v[k]=0;
            }
        }
        k--;
    }
}
int main()
{
    citire();
    bt();
    out<<pmax;
    in.close(); out.close();
    return 0;
}