Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รหัส C ++ เพื่อค้นหาหมายเลขสุดท้ายหลังจากลบเกมสูงสุดขั้นต่ำ


สมมติว่าเรามีอาร์เรย์ A ที่มีองค์ประกอบ n มี n ตัวเลขเขียนไว้บนกระดาน Amaland Bimal กำลังเล่นเกมแบบผลัดกันเล่น ในแต่ละเทิร์นพวกเขาจะเลือกหมายเลขและลบออกจากกระดาน อามาลเล่นก่อน Amal ต้องการลดจำนวนสุดท้ายที่เขาจะทิ้งไว้บนกระดานให้น้อยที่สุด และ Bimal ต้องการเพิ่มจำนวนสุดท้ายให้มากที่สุด เราต้องหาตัวเลขที่จะอยู่บนกระดาน

ดังนั้น หากอินพุตเป็น A =[2, 1, 3] ผลลัพธ์จะเป็น 2 เนื่องจาก Amal จะลบ 3, Bimal จะลบ 1 ดังนั้นจำนวนสุดท้ายจะเป็น 2

ขั้นตอน

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

n := size of A
sort the array A
return A[floor of ((n - 1)/2)]

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A){
   int n = A.size();
   sort(A.begin(), A.end());
   return A[(n - 1) / 2];
}
int main(){
   vector<int> A = { 2, 1, 3 };
   cout << solve(A) << endl;
}

อินพุต

{ 2, 1, 3 }

ผลลัพธ์

2