Cod sursa(job #2905540)

Utilizator LucaMuresanMuresan Luca Valentin LucaMuresan Data 22 mai 2022 13:00:18
Problema Problema rucsacului Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in ("rucsac.in");
ofstream out ("rucsac.out");

#define mod 999979

int a[250001], b[250001], v[501];
int f[501];

int main()
{
    int n, k;
    in >> n >> k;
    for (int i=1; i<=n; i++)
        in >> v[i], f[v[i]]++;
    a[0] = 1;
    int maxim = 0;
    for (int i=1; i<=n; i++)
    {
        for (int j=maxim; j>=0; j--)
        {
            if (a[j]==1)
            {
                if (j+v[i] <= k)
                {
                    if (j+v[i] > maxim)
                        maxim = j+v[i];
                    a[j+v[i]] = 1;
                    b[j+v[i]] = (1+b[j+v[i]]) % mod;
                }
            }
        }
    }
    int S = b[k];

    out << S;
    return 0;
}