Nyoj 47 过河问题

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

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

#include 
#include 
#include 
#include 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);elsereturn 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;
}



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部