






from __future__ import annotations

def     lowerCAmelCase__  (  UpperCamelCase__  ,     UpperCamelCase__  ,     UpperCamelCase__  ,     UpperCamelCase__       ):



  '''simple docstring'''

  # Base Case
  if counter == 0 or capacity == 0:
    return 0

  # If weight of the nth item is more than Knapsack of capacity,
  #   then this item cannot be included in the optimal solution,
  # else return the maximum of two cases:
  #   (1) nth item included
  #   (2) not included
  if weights[counter - 1] > capacity:
    return knapsack(UpperCamelCase__  ,     UpperCamelCase__  ,     UpperCamelCase__  ,     counter - 1       )
  else:
    _a						: str    =			capacity - weights[counter - 1]
    _a						: int    =			values[counter - 1] + knapsack(
        UpperCamelCase__  ,     UpperCamelCase__  ,     UpperCamelCase__  ,     counter - 1       )
    _a						: Tuple    =			knapsack(UpperCamelCase__  ,     UpperCamelCase__  ,     UpperCamelCase__  ,     counter - 1       )
    return max(UpperCamelCase__  ,     UpperCamelCase__       )


if __name__ == "__main__":
 import doctest

 doctest.testmod()









"""simple docstring"""




# this script builds a small sample spm file tests/fixtures/test_sentencepiece_no_bos.model, with features needed by pegasus

# 1. pip install sentencepiece
#
# 2. wget https://raw.githubusercontent.com/google/sentencepiece/master/data/botchan.txt

# 3. build
import sentencepiece as spm

# pegasus:
# 1. no bos
# 2. eos_id is 1
# 3. unk_id is 2
# build a sample spm file accordingly
spm.SentencePieceTrainer.train(
    '--input=botchan.txt --model_prefix=test_sentencepiece_no_bos --bos_id=-1 --unk_id=2  --eos_id=1  --vocab_size=1000'
)

# 4. now update the fixture
# mv test_sentencepiece_no_bos.model ../../tests/fixtures/

