Nyoj 47 过河问题

来源:互联网 发布:快乐家族关系知乎 编辑:程序博客网 时间:2024/05/18 03:17

题目来源:http://acm.nyist.net/JudgeOnline/problem.php?pid=47

资料参考:http://blog.csdn.net/hearthougan/article/details/24009815

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 1010;int Cross_River(int a[], int n){    if(n == 1)        return a[0];    if(n == 2)        return a[1];    if(n == 3)        return a[0]+a[1]+a[2];    if(n >= 4)    {        if(2*a[1] >= a[0] + a[n-2])            return 2*a[0]+a[n-2]+a[n-1] + Cross_River(a, n-2);        else            return 2*a[1]+a[0]+a[n-1] + Cross_River(a, n-2);    }}int main(){    int T, arr[MAXN], n;    scanf("%d", &T);    while(T--)    {        scanf("%d", &n);        memset(arr, 0, sizeof(arr));        for(int i = 0; i < n; ++i)            scanf("%d", &arr[i]);        sort(arr, arr+n);        printf("%d\n", Cross_River(arr, n));    }    return 0;}


0 0
原创粉丝点击