Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để tìm số cuối cùng sau trò chơi loại bỏ tối thiểu tối đa

Giả sử chúng ta có một mảng A với n phần tử. Có n số được viết trên bảng. Amaland Bimal đang chơi trò chơi theo lượt. Trong mỗi lượt, họ chọn một số và xóa nó khỏi bảng. Amal chơi trước. Amal muốn giảm thiểu số cuối cùng mà anh ta để lại trên bảng và Bimal muốn tối đa hóa nó. Chúng ta phải tìm số vẫn còn trên bo mạch.

Vì vậy, nếu đầu vào là A =[2, 1, 3], thì đầu ra sẽ là 2, vì Amal sẽ loại bỏ 3, Bimalwill loại bỏ 1, vì vậy số cuối cùng sẽ là 2.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

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

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

#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;
}

Đầu vào

{ 2, 1, 3 }

Đầu ra

2