<prompt> Tuna kazi za n, ambapo kila kazi imeratibiwa kufanywa kuanzia startTimei hadi endTimei, kupata faida ya faidai.Umepewa safu za startTime, endTime na profit, rudisha faida ya juu kabisa unayoweza kuchukua ili kwamba kusiwe na kazi mbili katika kitengo kidogo chenye masafa ya saa yanayopishana.Ukichagua kazi inayoisha kwa wakati X utaweza kuanza kazi nyingine inayoanza kwa wakati X.Mfano wa 1:Ingizo: startTime 1,2,3,3, endTime 3,4,5,6, faida 50,10,40,70Pato: 120Maelezo: Sehemu ndogo iliyochaguliwa ni kazi ya kwanza na ya nne.Muda 1-33-6 , tunapata faida ya 120 50 70.Mfano wa 2:Ingizo: startTime 1,2,3,4,6, endTime 3,5,10,6,9, faida 20,20,100,70,60 Pato: 150Maelezo: Sehemu ndogo iliyochaguliwa ni kazi ya kwanza, ya nne na ya tano.Faida iliyopatikana 150 20 70 60.Mfano wa 3:Ingizo: startTime 1,1,1, endTime 2,3,4, faida 5,6,4Pato: 6Vikwazo: 1 startTime.length endTime.length profit.length 5 104 1 startTimei endTimei 109 1 faidai 104  <response>: kutoka kwa uingizaji wa sehemu mbili bisect_leftdef upangaji wa kazistartTime, endTime, profit: jobs sortedzipendTime, startTime, profit dp kazi02 def latestNonConflictindex: startTimeToFind jobsindex1 index bisect_leftkazi0 kwa kazi katika kazi, startTimeToFind ikiwa index: kurudi index - 1 kurudi -1 kwa i in range1, lenkazi: L hivi karibuniNonConflicti dp.appendmaxdp-1, 0 ikiwa L -1 mwingine dpL kazii2 rudisha dp-1 