Language: C++

#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <functional>
#include <map>
#include <climits>
#include <stack>
#include <string>
#include <random>
#include<set>
#include <iomanip>

long double calSub(const std::vector<long double> &prob, const int rest, const int sur, std::vector<std::vector<long double>> &memo) {
	if (rest < sur) return 0;
	else if (rest == 0) return 1;
	else if (sur == 0) return 1;
	else {
		if (memo[rest][sur] == -1) {
			memo[rest][sur] = prob[rest - 1] * calSub(prob, rest - 1, sur - 1, memo) + (1 - prob[rest - 1]) * calSub(prob, rest - 1, sur, memo);
		}
		return memo[rest][sur];
	}
}
long double cal(const std::vector<long double> &prob) {
	std::vector<std::vector<long double>> memo(prob.size() + 1);
	for (auto i = 0; i < memo.size(); ++i) {
		memo[i] = std::vector<long double>(i + 1, -1);
	}
	for (unsigned int  i = 0; i < prob.size(); i += 100) {
		for (auto j = 0; j < std::min(i, prob.size() / 2); j += 100) {
			calSub(prob, i, j, memo);
		}
	}
	return calSub(prob, prob.size(), prob.size() / 2 + 1, memo);
}
int main() {
	int n; std::cin >> n;
	std::vector<long double> prob(n);
	for (auto &p : prob) std::cin >> p;
	std::cout << std::setprecision(12) << std::fixed;
	std::cout << cal(prob) << std::endl;
}

Compiler output:
a.cc: In function 'long double cal(const std::vector<long double>&)':
a.cc:31:46: error: no matching function for call to 'min(unsigned int&, std::vector<long double>::size_type)'
   31 |                 for (auto j = 0; j < std::min(i, prob.size() / 2); j += 100) {
      |                                      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/string:51,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_algobase.h:233:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  233 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:233:5: note:   template argument deduction/substitution failed:
a.cc:31:46: note:   deduced conflicting types for parameter 'const _Tp' ('unsigned int' and 'std::vector<long double>::size_type' {aka 'long unsigned int'})
   31 |                 for (auto j = 0; j < std::min(i, prob.size() / 2); j += 100) {
      |                                      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_algobase.h:281:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  281 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algobase.h:281:5: note:   candidate expects 3 arguments, 2 provided
In file included from /usr/include/c++/14/algorithm:61,
                 from a.cc:3:
/usr/include/c++/14/bits/stl_algo.h:5686:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(initializer_list<_Tp>)'
 5686 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5686:5: note:   candidate expects 1 argument, 2 provided
/usr/include/c++/14/bits/stl_algo.h:5696:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(initializer_list<_Tp>, _Compare)'
 5696 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/14/bits/stl_algo.h:5696:5: note:   template argument deduction/substitution failed:
a.cc:31:46: note:   mismatched types 'std::initializer_list<_Tp>' and 'unsigned int'
   31 |                 for (auto j = 0; j < std::min(i, prob.size() / 2); j += 100) {
      |                                      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~