एल्गोरिथ्म्स और डेटा स्ट्रक्चर्स

शेयर खरीदना और बेचना

n इन्टिजर्स (integers) दिए गए हैं, जो आपकी पसंदीदा कंपनी के शेयर मूल्यों का प्रतिनिधित्व करते हैं। आपको यह तय करना है कि शेयर खरीदने और बेचने का सबसे अच्छा समय कौन-सा होगा। आप केवल एक बार compra (buy) करना चाहते हैं और एक बार venta (sell) करना चाहते हैं, ताकि अधिकतम मुनाफा (कम कीमत पर खरीद एवं ऊँची कीमत पर बिक्री) कर सकें।
यह निर्धारित करें कि आप अपनी पसंदीदा कंपनी के शेयर पर अधिकतम कितना लाभ कमा सकते हैं। यदि ऐसा संभव न हो, तो आपको 0 प्रिंट करना चाहिए (जिसका अर्थ है कि आप खरीद या बेच कोई कार्रवाई नहीं करेंगे)।

इनपुट

इनपुट की पहली पंक्ति में एकल पूर्णांक n (1 ≤ n ≤ ) दिया रहता है।
अगली पंक्ति में अंतर-से-अलगा कर लिखे गए दिए जाते हैं, जो शेयर के दामों का प्रतिनिधित्व करते हैं (0 ≤ ≤ 1000)।

आउटपुट

प्रोग्राम को वह अधिकतम लाभ प्रिंट करना चाहिए, जो आप अपने पसंदीदा शेयर को खरीदने और बेचने से कमा सकते हैं।

उदाहरण

इनपुट
आउटपुट
5 4 2 6 8 1
6
4 8 6 4 3
0

व्याख्या

  1. यहाँ स्टॉक को तब खरीदा जाता है जब इसकी कीमत 2 होती है और 8 पर बेचने से 6 का लाभ मिलता है।
  1. दूसरे मामले में शेयर की कीमत लगातार गिरती रहती है, इसलिए कोई मुनाफा नहीं हो सकता और 0 प्रिंट किया जाता है।
 
Hint
हर चरण पर, आप वर्तमान “best” संभव उत्तर को ट्रैक में रख सकते हैं और साथ ही स्टॉक के अब तक के सबसे सस्ते मूल्य को भी सहेज सकते हैं।
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue