PAT 1125
第二题很多人都说是赫夫曼树,我就排了个序就过了,之后推敲了一下这个逻辑是可行的,当然赫夫曼树也是正解,有兴趣的同学可以用赫夫曼树做一下
#include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int main(){ int n, i; double s[10005], len = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%lf", &s[i]); } sort(s, s + n); len = s[0]; for (i = 1; i < n; i++) { len = len / 2 + s[i] / 2; } int l = (int)(len); if (l <= len) { PRintf("%d\n", l); } else { printf("%d\n", l - 1); } return 0; }