1472: 阅读程序-6

Memory Limit:128 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:102 Solved:9

Description


#include <algorithm>

#include <iostream>

using namespace std;


int n;

int d[50][2];

int ans;


void dfs(int n, int sum) {

       if (n == 1) {

              ans = max(sum, ans);

              return;

       }

       for (int i = 1; i < n; ++i) {

              int a = d[i - 1][0], b = d[i - 1][1];

              int x = d[i][0], y = d[i][1];

              d[i - 1][0] = a + x;

              d[i - 1][0] = b + y;

              for ( int j = i; j < n - 1; ++j)

                     d[j][0] = d[j + 1][0], d[j][1] = d[j + 1][1];

              int s = a + x + abs(b - y);

              dfs(n - 1, sum + s);

              for ( int j = n - 1; j > i; --j )

                     d[j][0] = d[j - 1][0], d[j][1] = d[j - 1][1];

              d[i - 1][0] = a, d[i - 1][1] = b;

              d[i][0] = x, d[i][1] = y;

       }

}


int main() {

       cin >> n;

       for (int i = 0; i < n; ++i)

              cin >> d[i][0];

       for (int i = 0; i < n; ++i)

              cin >> d[i][1];

       ans = 0;

       dfs(n, 0);

       cout << ans << endl;

       return 0;

}



       假设输入的n时不超过50的正整数,d[i][0]d[i][1]都是不超过10000的正整数,完成下面的判断题和单选题:

l  判断题

1)     若输入n0,此程序可能会死循环或发生运行错误。(    )

2)     若输入n20,接下来的输入权威0,则输出为0(    )

3)     输出的数一定不小于输入的d[i][0]d[i][1]的任意一个。 (    )

l  单选题

4)     若输入的n20,接下来的输入时209200,则输出为(    )

A.     1917

B.     1908

C.     1881

D.     1890

5)     若输入的n30,接下来的输入时300305,则输出为(    )

A.     2020

B.     2030

C.     2010

D.     2000

6)     (4分)若输入的n15,接下来的输入时151,以及151,则输出为(    )

A.     2420

B.     2220

C.     2440

D.     2240

Input

输入一个整数n, 1<=n<=6,表示题号。

Output

对于判断题,输出大写字母V代表正确,大写字母X代表错误。对于选择题,输出选项(大写字母)。

Sample Input Copy

1

Sample Output Copy

X

HINT

示例程序如下:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n; cin>>n;
switch(n) {
case 1: cout<<"V"<<endl; break;
case 2: cout<<"X"<<endl; break;
case 3: cout<<"X"<<endl; break;
case 4: cout<<"X"<<endl; break;
case 5: cout<<"A"<<endl; break;
case 6: cout<<"D"<<endl; break;
}
return 0;
}