组合题6 个小题
已作答 0 / 6
1#include <algorithm>2#include <iostream>3using namespace std;4 5int n;6int d[50][2];7int ans;8 9void dfs(int n, int sum) {10 if (n == 1) {11 ans = max(sum, ans);12 return;13 }14 for (int i = 1; i < n; ++i) {15 int a = d[i - 1][0], b = d[i - 1][1];16 int x = d[i][0], y = d[i][1];17 d[i - 1][0] = a + x;18 d[i - 1][1] = b + y;19 for (int j = i; j < n - 1; ++j)20 d[j][0] = d[j + 1][0], d[j][1] = d[j + 1][1];21 int s = a + x + abs(b - y);22 dfs(n - 1, sum + s);23 for (int j = n - 1; j > i; --j)24 d[j][0] = d[j - 1][0], d[j][1] = d[j - 1][1];25 d[i - 1][0] = a, d[i - 1][1] = b;26 d[i][0] = x, d[i][1] = y;27 }28}29 30int main() {31 cin >> n;32 for (int i = 0; i < n; ++i)33 cin >> d[i][0];34 for (int i = 0; i < n;++i)35 cin >> d[i][1];36 ans = 0;37 dfs(n, 0);38 cout << ans << endl;39 return 0;40}假设输入的 n 是不超过 50 的正整数,d[i][0]、d[i][1] 都是不超过 10000 的正整数,完成下面的判断题和单选题:
(4 分)若输入的 n 为 15,接下来的输入是 15 到 1,以及 15 到 1,则输出为( )。