A sub-sequence of a sequence is a sequence which is obtained by deleting zero or more elements from the sequence. You are given a sequence A in which every element is a pair of integers i.e A = [ (a 1 , w 1 ) , (a 2 , w 2 ) ,...,(a N , w N )]. For a sub-sequence B = [ (b 1 , v 1 ) , (b 2 , v 2 ) , .... ,(b M , v M ) ] of the given sequence : We call it increasing if for every i ( 1 <= i < M ) , b i < b i+1 . Weight(B) = v1 + v2 + ... + vM . In short : Given a sequence, output the maximum weight formed by an increasing sub-sequence. I have figured out how to do it in O(n^2) time. How can we do it in O(nlogn) ?
How do I find the solution of a CodeChef problem if it is not given in its editorial?
תת-רצף של רצף הוא רצף שמתקבל על ידי מחיקת אפס או יותר אלמנטים מהרצף. ניתן לך רצף A שבו כל אלמנט הוא זוג מספרים שלמים כלומר A = [ (a 1 , w 1 ), (a 2 , w 2 ) ,...,(a N , w N )]. עבור תת-רצף B = [ (b 1 , v 1 ), (b 2 , v 2 ), .... ,(b M , v M ) ] של הרצף הנתון : אנו קוראים לזה הגדלת אם עבור כל i (1 <= i < M ), b i < b i+1 . משקל (B) = v1 + v2 + ... + vM . בקיצור: בהינתן רצף, פלט את המשקל המקסימלי שנוצר על ידי תת-רצף הולך וגדל. הבנתי איך לעשות את זה בזמן O(n^2). איך אנחנו יכולים לעשות את זה ב-O(nlogn)?
איך אני מוצא את הפתרון של בעיית CodeChef אם היא לא מופיעה במאמר המערכת שלו?