#include <iostream> 
#include <vector> 
using  namespace  std; 
 
int  main( )  { 
    int  n, kapasitas; 
    cout  <<  "Jumlah barang: " ; 
    cin  >>  n; 
 
    vector< int >  bobot( n) , nilai( n) ; 
 
    cout  <<  "Masukkan bobot barang:\n " ; 
    for ( int  i =  0 ;  i <  n;  i++ ) 
        cin  >>  bobot[ i] ; 
 
    cout  <<  "Masukkan nilai barang:\n " ; 
    for ( int  i =  0 ;  i <  n;  i++ ) 
        cin  >>  nilai[ i] ; 
 
    cout  <<  "Masukkan kapasitas maksimum knapsack: " ; 
    cin  >>  kapasitas; 
 
    // Encoding biner representasi solusi 
    vector< int >  kode( n) ; 
    cout  <<  "Masukkan representasi biner solusi (0/1):\n " ; 
    for ( int  i =  0 ;  i <  n;  i++ ) 
        cin  >>  kode[ i] ; 
 
    int  totalBobot =  0 , totalNilai =  0 ; 
 
    // Hitung total berdasarkan encoding 
    for ( int  i =  0 ;  i <  n;  i++ ) { 
        if ( kode[ i]  ==  1 ) { 
            totalBobot + =  bobot[ i] ; 
            totalNilai + =  nilai[ i] ; 
        } 
    } 
 
    // Output hasil 
    cout  <<  "\n === HASIL ==="  <<  endl; 
    cout  <<  "Total Bobot  : "  <<  totalBobot <<  endl; 
    cout  <<  "Total Nilai  : "  <<  totalNilai <<  endl; 
 
    if ( totalBobot >  kapasitas) 
        cout  <<  "Status       : TIDAK VALID (Melebihi kapasitas)\n " ; 
    else 
        cout  <<  "Status       : VALID (Tidak melebihi kapasitas)\n " ; 
 
    return  0 ; 
} 
 
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwga2FwYXNpdGFzOwogICAgY291dCA8PCAiSnVtbGFoIGJhcmFuZzogIjsKICAgIGNpbiA+PiBuOwoKICAgIHZlY3RvcjxpbnQ+IGJvYm90KG4pLCBuaWxhaShuKTsKCiAgICBjb3V0IDw8ICJNYXN1a2thbiBib2JvdCBiYXJhbmc6XG4iOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBjaW4gPj4gYm9ib3RbaV07CgogICAgY291dCA8PCAiTWFzdWtrYW4gbmlsYWkgYmFyYW5nOlxuIjsKICAgIGZvcihpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgY2luID4+IG5pbGFpW2ldOwoKICAgIGNvdXQgPDwgIk1hc3Vra2FuIGthcGFzaXRhcyBtYWtzaW11bSBrbmFwc2FjazogIjsKICAgIGNpbiA+PiBrYXBhc2l0YXM7CgogICAgLy8gRW5jb2RpbmcgYmluZXIgcmVwcmVzZW50YXNpIHNvbHVzaQogICAgdmVjdG9yPGludD4ga29kZShuKTsKICAgIGNvdXQgPDwgIk1hc3Vra2FuIHJlcHJlc2VudGFzaSBiaW5lciBzb2x1c2kgKDAvMSk6XG4iOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBjaW4gPj4ga29kZVtpXTsKCiAgICBpbnQgdG90YWxCb2JvdCA9IDAsIHRvdGFsTmlsYWkgPSAwOwoKICAgIC8vIEhpdHVuZyB0b3RhbCBiZXJkYXNhcmthbiBlbmNvZGluZwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgaWYoa29kZVtpXSA9PSAxKXsKICAgICAgICAgICAgdG90YWxCb2JvdCArPSBib2JvdFtpXTsKICAgICAgICAgICAgdG90YWxOaWxhaSArPSBuaWxhaVtpXTsKICAgICAgICB9CiAgICB9CgogICAgLy8gT3V0cHV0IGhhc2lsCiAgICBjb3V0IDw8ICJcbj09PSBIQVNJTCA9PT0iIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJUb3RhbCBCb2JvdCAgOiAiIDw8IHRvdGFsQm9ib3QgPDwgZW5kbDsKICAgIGNvdXQgPDwgIlRvdGFsIE5pbGFpICA6ICIgPDwgdG90YWxOaWxhaSA8PCBlbmRsOwoKICAgIGlmKHRvdGFsQm9ib3QgPiBrYXBhc2l0YXMpCiAgICAgICAgY291dCA8PCAiU3RhdHVzICAgICAgIDogVElEQUsgVkFMSUQgKE1lbGViaWhpIGthcGFzaXRhcylcbiI7CiAgICBlbHNlCiAgICAgICAgY291dCA8PCAiU3RhdHVzICAgICAgIDogVkFMSUQgKFRpZGFrIG1lbGViaWhpIGthcGFzaXRhcylcbiI7CgogICAgcmV0dXJuIDA7Cn0K