Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

गणित प्रतियोगिता के विजेता को खोजने के लिए C++ कोड

मान लीजिए कि हमारे पास आकार n के दो सरणियाँ P और T हैं। और एक और नंबर सी है। अमल और बिमल एक गणित प्रतियोगिता में भाग लेने जा रहे हैं। एन समस्याएं हैं। Ith समस्या का प्रारंभिक स्कोर P[i] है, और इसे हल करने के लिए T[i] लेता है। P और T दोनों को बढ़ते क्रम में क्रमबद्ध किया गया है। यहाँ c अंक खोने का स्थिरांक है। यदि समय x (प्रतियोगिता शुरू करने के x मिनट बाद) पर कोई समस्या प्रस्तुत की जाती है, तो यह अधिकतम (0, P[i] - c*x) अंक देता है। अमल क्रम 1, 2, ... n में समस्याओं को हल करने जा रहा है और बिमल उन्हें n, n-1, ... 1 की तरह हल करने जा रहा है। हमें यह पता लगाना है कि अधिकतम अंक किसे मिलेगा। अगर उन्हें वही मिला है, तो वह 'टाई' होगी।

इसलिए, यदि इनपुट c =2 जैसा है; पी =[50, 85, 250]; टी =[10, 15, 25], तो आउटपुट अमल होगा।

कदम

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

n := size of P
m := 0
ans1 := 0
ans2 := 0
for initialize i := 0, when i < n, update (increase i by 1), do:
   m := m + T[i]
   ans1 := ans1 + maximum of (0, P[i] - c * m)
m := 0
for initialize i := n - 1, when i > 1, update (decrease i by 1), do:
   m := m + T[i]
   ans2 := ans2 + maximum of (0, P[i] - c * m)
if ans1 > ans2, then:
   return "Amal"
otherwise when ans1 < ans2, then:
   return "Bimal"
Otherwise
   return "Tie"

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
string solve(int c, vector<int> P, vector<int> T){
   int n = P.size();
   int m = 0, ans1 = 0, ans2 = 0;
   for (int i = 0; i < n; i++){
      m += T[i];
      ans1 += max(0, P[i] - c * m);
   }
   m = 0;
   for (int i = n - 1; i > 1; i--){
      m += T[i];
      ans2 += max(0, P[i] - c * m);
   }
   if (ans1 > ans2)
      return "Amal";
   else if (ans1 < ans2)
      return "Bimal";
   else
      return "Tie";
}
int main(){
   int c = 2;
   vector<int> P = { 50, 85, 250 };
   vector<int> T = { 10, 15, 25 };
   cout << solve(c, P, T) << endl;
}

इनपुट

2, { 50, 85, 250 }, { 10, 15, 25 }

आउटपुट

Amal

  1. C++ कोड बैटरी कॉम्बो की संख्या का पता लगाने के लिए

    मान लीजिए, हमारे पास n बैटरियां हैं जिनका अधिकतम 5 बार उपयोग किया जा सकता है। हमारे पास कुछ डिवाइस हैं जिन्हें तीन बैटरी की आवश्यकता होती है और डिवाइस के प्रत्येक उपयोग से बैटरी की उपयोग संख्या 1 बढ़ जाती है। यदि हमें उपकरणों को k बार उपयोग करना है, तो हमें यह पता लगाना होगा कि हम डिवाइस को पावर देन

  1. सेल कलरिंग गेम के विजेता को खोजने के लिए C++ प्रोग्राम

    मान लीजिए कि हमारे पास दो एरे हैं ए और बी दोनों एन तत्वों के साथ हैं। मान लीजिए अमल और बिमल एक बोर्ड पर एक खेल खेल रहे हैं जिसके सेल नंबर 1 से N तक और N-1 सड़कों पर अंकित हैं। सड़कें दो सेल को जोड़ रही हैं। तो ith सड़क A[i] को B[i] से जोड़ रही है। हर सेल को हर दूसरे सेल से बार-बार पास की सेल में जाक

  1. सी++ में क्रमपरिवर्तन खोजें

    मान लीजिए कि हमारे पास एक गुप्त हस्ताक्षर है जिसमें D और I वर्ण शामिल हैं। D दो संख्याओं के बीच घटते संबंध को दर्शाता है, I दो संख्याओं के बीच बढ़ते संबंध को दर्शाता है। और गुप्त हस्ताक्षर का निर्माण एक विशेष पूर्णांक सरणी द्वारा किया गया था, जिसमें विशिष्ट रूप से 1 से n तक की सभी भिन्न संख्याएँ होत