有大佬看看我这第二题算法有什么问题吗 ``` #include<bits/stdc++.h> using namespace std; int combine(int m, int n){     if(m == 1)         return n;     return n / m * combine(m - 1, n - 1); } int main(){     freopen("jindong2.txt","r",stdin);     int n, evens = 0, odds = 0;     cin >> n;     vector<int> nums(n);          for(int i = 0; i < n; i++){         cin >> nums[i];         if(nums[i] % 2 == 0)             evens++;         if(nums[i] % 2 == 1)             odds++;     }     int res1 = 0, res2 = 0;     for(int i = 2; i <= evens; i++){         res1 = (res1 + combine(i, evens)) % 1000000007;     }     for(int i = 2; i <= odds; i++){         res2 = (res2 + combine(i, evens)) % 1000000007;     }     cout << res1 + res2 << endl; } ```