| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2009 人关注过本帖, 1 人收藏
标题:求助,不知道哪里有问题,按理说是对的,但测试数据太大,没法试。。。
只看楼主 加入收藏
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
数一下每一堆被 + 了几次就清楚了
2011-08-01 17:01
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
最小值。要以最少的合并次数,每次合并最小的值。
合并次数最少,要求每次合并的数要最多。若待合并的数有N个,每次最多允许合并K个,那么最少合并次数为[(N-1)/(K-1)]次(上取整)。
如果每次合并的数都正好是K个,那只需要从小到大合并就好了。但如果有一次合并的数少于K个,那这次合并该在什么时候进行?
你们在最小值计算中出错的原因根本在于将这次合并放在了最后。而这次合并应该最先进行。

重剑无锋,大巧不工
2011-08-02 09:25
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <queue>
using namespace std;

struct minint
{
    int weight;
    bool operator <(minint a)const
    {
        return weight >= a.weight;
    }
};
struct maxint
{
    int weight;
    bool operator <(maxint a)const
    {
        return weight <= a.weight;
    }
};

int main()
{
    int n,k;
    int i,j;
    while(EOF != scanf("%d %d",&n,&k))
    {
        priority_queue<minint> qmin;
        priority_queue<maxint> qmax;
        minint min;
        maxint max;
        int mem = n;
        while(n--)
        {
            scanf("%d",&min.weight);
            max.weight = min.weight;
            qmin.push(min);
            qmax.push(max);
        }
        int sum = 0;
        int res = mem%(k-1);
        int size = 0;
        mem = 0;
        if(res != 1)
        {
            size = res == 0 ? k-1:res;
            int s = 0;
            for(i = 0;i<size;i++)
            {
                s+=qmin.top().weight;
                qmin.pop();
            }
            mem = s;
            min.weight = s;
            qmin.push(min);
        }
        while(1 != qmin.size())
        {
            int tempsum = 0;
            for(i = 0;i<k && !qmin.empty();i++)
            {
                minint temp = qmin.top();
                tempsum += temp.weight;
                qmin.pop();
            }
            min.weight = tempsum;
            qmin.push(min);
            sum+=tempsum;
        }
        printf("%d ",sum+mem);
        sum = 0;
        while(1 != qmax.size())
        {
            int tempsum = 0;
            for(i = 0;i<2 && !qmin.empty();i++)
            {
                maxint temp = qmax.top();
                tempsum += temp.weight;
                qmax.pop();
            }
            max.weight = tempsum;
            qmax.push(max);
            sum+=tempsum;
        }
        printf("%d\n",sum);
    }
    return 0;
}
感谢beyondyf的提醒 我修改了一下代码  你的那数量为1000的测试数据过了
谁能把OJ的网址发下  我去试一下  或者你们帮我试试也可以 谢过

                                         
===========深入<----------------->浅出============
2011-08-02 11:33
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
http://acm.fafu.
不过现在登录不上去。可能他们机房没电了

重剑无锋,大巧不工
2011-08-02 11:37
qazujm1212
Rank: 2
等 级:论坛游民
帖 子:24
专家分:24
注 册:2011-3-23
收藏
得分:0 
回复 22楼 beyondyf
对呀,我的程序就是先拿从小到大的k个数合并,结果与剩下的数排序,然后再拿k个数合并......一直到拿完或剩下小于k个数,再把他们加起来。,可是最小值就是不对
2011-08-02 11:43
qazujm1212
Rank: 2
等 级:论坛游民
帖 子:24
专家分:24
注 册:2011-3-23
收藏
得分:0 
回复 24楼 beyondyf
不知怎么了,可能是我们oj坏了,我用cena给他测
2011-08-02 11:44
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
24楼已经说过了  有可能出现最后不是正好k个石头堆  那么 你从小到大每次堆k个就是错误的

应该是先合并n%(k-1)求余个堆(如果求余为0表示剩下k-1个堆)  然后后面的继续每次合并k个这样得到的才是正确结果

                                         
===========深入<----------------->浅出============
2011-08-02 11:49
qazujm1212
Rank: 2
等 级:论坛游民
帖 子:24
专家分:24
注 册:2011-3-23
收藏
得分:0 
回复 23楼 laoyang103
那啥,把最大值放前面,最小值放后面,而且有一个测试数据会崩溃

8000 66
62 54 46 45 15 52 78 58 61 88 43 75 98 24 12 51 43 57 63 24 75 54 14 8 69 57 99 81 27 3 47 87 65 92 93 17 60 72 34 54 16 53 91 23 69 10 7 91 61 39 62 82 27 14 1 88 47 20 83 20 30 20 15 89 92 75 21 31 70 22 95 2 51 50 67 50 68 99 25 23 80 85 47 83 24 74 83 85 42 60 17 48 75 38 77 47 50 21 79 97 13 97 96 2 53 29 20 12 28 1 55 68 13 26 70 48 30 26 61 11 46 39 94 72 79 11 33 60 37 41 40 31 76 32 98 89 16 57 79 5 8 74 50 76 60 77 68 71 75 48 92 70 28 79 64 3 84 45 5 84 5 43 46 29 8 64 57 74 72 76 8 57 73 32 8 50 31 65 92 98 94 6 8 52 98 15 24 44 54 80 48 92 16 33 59 20 93 37 74 43 1 44 99 13 74 35 46 55 95 22 20 50 87 13 52 63 90 55 97 26 72 25 33 18 45 46 50 10 12 74 96 91 61 55 2 9 57 2 45 98 80 62 93 43 37 68 30 98 92 82 64 79 74 52 99 95 99 30 49 59 8 3 45 46 47 27 91 19 50 71 86 7 84 69 36 98 43 97 37 7 26 1 37 90 46 32 83 22 94 27 12 21 72 77 9 52 86 4 88 2 8 8 2 96 26 30 16 65 5 46 77 26 81 5 61 45 2 61 93 31 89 77 82 44 38 69 59 28 33 11 16 57 91 52 29 67 57 52 23 37 3 33 72 96 24 60 47 92 88 88 26 43 86 60 49 1 61 48 85 84 96 11 55 84 35 15 3 9 17 35 87 9 91 18 73 99 71 62 7 29 46 17 43 58 10 49 64 81 39 36 28 96 97 19 56 60 81 6 38 22 21 7 34 83 79 30 52 41 20 97 22 32 60 51 69 29 83 35 56 72 4 71 75 72 50 60 25 98 75 55 53 49 41 40 59 31 76 68 25 85 2 51 17 79 76 13 43 22 42 16 3 48 64 85 57 94 29 52 69 74 49 30 46 22 42 55 15 12 5 34 85 12 31 7 25 58 16 29 52 24 58 46 47 99 13 2 75 37 75 10 33 78 51 49 79 14 35 2 40 30 14 49 47 38 38 29 71 56 85 95 30 64 36 6 17 14 78 82 38 61 84 20 54 11 4 2 85 73 9 86 81 42 9 80 27 84 41 5 11 40 47 1 54 49 84 29 70 42 78 8 93 69 63 93 80 37 11 56 69 3 76 13 93 95 43 92 84 27 82 88 58 52 51 76 65 4 16 17 15 10 79 27 60 18 56 64 58 49 49 62 27 67 30 32 57 95 10 1 21 42 62 62 6 13 5 2 8 91 47 74 89 99 54 92 57 18 15 79 10 35 50 35 90 37 27 68 52 23 93 6 14 71 50 70 50 44 19 17 76 96 97 33 27 76 97 66 43 53 55 8 40 52 66 44 86 10 11 67 61 4 14 81 85 66 91 17 99 29 20 66 9 47 60 21 31 56 47 60 3 30 68 73 83 60 14 29 23 17 38 78 29 39 70 69 31 73 97 58 49 78 53 14 27 71 14 48 22 95 65 21 99 93 44 45 67 84 98 94 23 49 9 39 77 16 37 56 55 8 53 13 92 97 69 44 90 88 47 43 9 21 91 11 37 16 10 67 64 69 26 83 71 49 21 79 84 36 3 37 34 34 84 33 43 61 77 23 11 77 58 65 42 92 16 66 68 87 50 18 23 67 20 64 59 92 34 43 87 49 36 22 33 78 28 90 43 71 65 75 54 15 58 21 79 44 38 22 74 29 75 33 97 88 42 68 81 95 31 48 88 36 10 41 87 62 3 65 90 29 43 70 61 84 34 47 34 21 90 2 76 10 76 79 23 43 84 4 41 44 97 29 95 16 23 81 71 19 28 20 96 43 82 14 16 15 71 10 51 64 20 53 46 97 71 44 95 48 66 53 50 78 45 4 47 6 68 11 45 13 45 99 40 9 10 12 64 83 90 49 10 94 86 70 59 72 10 64 95 38 47 67 31 26 73 8 48 41 93 37 9 96 93 48 68 68 1 32 79 85 50 92 86 72 35 40 85 71 26 19 18 15 21 72 23 62 57 84 80 50 76 63 83 23 18 80 20 76 47 97 25 60 88 74 47 29 62 6 20 67 68 23 62 87 40 33 83 69 63 13 83 7 62 34 36 85 29 12 71 69 48 52 57 85 42 63 48 94 51 12 76 4 92 62 8 59 13 46 72 45 12 65 24 68 46 72 80 20 35 55 88 90 46 1 68 19 68 16 10 94 78 64 94 89 23 34 67 84 92 54 58 53 76 34 93 97 46 5 94 43 49 66 7 72 56 19 13 96 49 11 78 81 2 82 55 7 7 84 59 83 12 84 53 51 71 44 8 42 52 77 34 67 92 35 56 97 15 28 43 66 7 79 50 50 46 62 58 63 21 81 71 31 64 8 93 86 91 35 3 42 22 88 79 43 17 42 9 23 24 39 9 42 18 2 91 41 21 95 80 4 74 30 41 21 17 91 98 3 60 54 23 76 83 56 86 15 9 50 53 50 9 23 60 62 80 74 65 64 24 83 52 92 23 20 40 46 52 27 21 62 14 36 49 57 66 4 67 28 75 11 2 73 45 37 24 79 72 63 27 90 24 99 59 50 30 41 60 62 19 61 34 10 22 12 45 23 1 9 17 71 53 14 29 83 21 88 76 60 85 12 28 33 74 14 94 31 39 41 65 16 4 25 66 76 56 47 77 49 62 16 8 23 14 58 15 89 63 29 31 53 36 91 74 89 24 3 65 7 5 49 62 91 97 22 56 71 4 88 73 5 62 71 66 61 41 29 86 41 97 11 4 74 10 80 53 74 47 25 83 62 48 38 70 20 19 25 51 57 26 1 80 49 20 55 30 41 70 25 8 12 12 17 96 77 68 64 62 11 41 24 28 62 26 63 26 18 39 99 16 73 16 63 95 17 13 58 18 88 26 49 62 61 95 61 86 32 44 75 85 2 97 7 55 81 50 50 32 43 6 56 10 93 98 52 85 70 12 80 43 17 2 71 66 21 84 91 16 80 50 57 55 19 42 18 45 57 51 59 95 50 94 31 37 67 43 55 89 79 59 14 17 45 61 37 94 40 86 54 46 80 84 9 34 31 29 79 85 67 65 64 67 5 76 29 11 34 11 47 95 86 77 28 79 61 47 61 55 69 49 83 21 62 73 65 23 8 42 28 32 51 93 95 52 65 24 91 61 14 3 8 38 80 91 13 23 34 18 12 76 69 90 72 81 86 73 69 76 79 61 9 60 75 7 88 4 95 6 55 35 4 90 70 80 20 75 44 74 64 47 46 73 2 74 92 76 59 32 41 63 89 17 12 37 91 34 2 87 61 19 41 79 89 37 26 53 46 1 27 54 53 61 83 82 42 53 35 80 31 87 90 92 93 42 73 9 33 14 30 37 33 85 5 99 9 41 47 63 91 94 15 44 22 10 39 89 89 10 37 79 18 54 62 99 96 1 40 85 92 36 92 44 20 8 29 8 76 72 5 34 87 26 85 48 88 93 3 6 80 87 6 96 32 16 35 19 4 31 35 26 32 57 16 58 50 68 63 70 36 96 75 65 94 47 28 55 73 6 83 66 24 44 19 41 3 85 98 87 82 20 80 96 28 81 60 33 98 81 56 37 97 65 36 40 91 29 58 24 67 37 62 23 31 60 18 67 46 45 66 32 86 95 92 95 17 20 46 65 52 7 56 19 65 66 65 44 30 84 14 83 86 53 77 46 51 32 42 1 61 54 81 68 17 22 11 76 84 65 9 18 69 10 7 40 99 65 62 95 95 40 24 82 66 39 90 93 76 74 35 93 91 61 67 25 93 17 46 35 40 80 40 21 68 56 97 95 88 48 50 29 21 8 81 78 17 59 46 90 68 32 59 79 53 44 12 70 74 87 4 55 39 67 55 68 16 53 69 87 68 37 73 25 86 81 37 23 66 80 40 74 44 74 65 6 13 87 6 83 32 83 15 86 68 19 85 12 53 96 58 15 65 14 18 47 4 18 67 70 78 7 41 45 63 94 1 53 4 18 50 46 78 78 3 73 88 24 12 75 62 91 31 73 57 63 6 50 2 89 40 90 52 82 86 10 81 45 34 1 44 55 78 2 72 2 2 32 22 65 25 58 41 74 4 88 71 34 77 36 48 27 99 25 17 51 62 14 95 8 24 54 65 34 51 84 28 94 32 69 15 67 98 32 52 46 45 88 58 56 54 31 60 92 10 17 45 90 43 26 82 68 73 29 61 58 44 41 67 84 66 7 14 18 3 57 47 15 64 21 9 62 37 12 71 75 43 19 21 84 72 35 80 14 71 40 10 8 73 28 87 71 46 51 78 15 35 81 74 64 36 2 69 90 35 67 23 53 88 21 87 8 14 30 50 84 80 5 78 32 64 49 10 60 77 57 67 98 75 22 66 19 97 98 4 29 46 80 62 10 50 96 91 29 53 27 66 86 48 45 10 17 9 14 16 23 86 92 80 84 28 50 87 93 50 52 43 66 9 43 58 8 44 34 97 82 41 13 19 93 1 45 4 78 80 87 69 35 42 62 27 79 63 54 2 55 34 88 35 87 43 40 42 9 75 72 74 76 23 26 52 35 78 90 46 7 83 39 65 40 41 33 73 47 35 1 15 57 67 5 46 73 38 75 35 93 56 29 75 11 77 9 91 93 13 64 94 79 31 56 99 80 19 57 27 20 28 7 92 64 74 71 15 3 66 9 2 17 31 80 89 51 5 95 51 14 82 70 23 68 21 92 29 90 23 58 80 95 89 77 53 88 7 37 3 97 9 50 29 51 75 48 1 63 10 91 40 1 55 40 25 39 7 45 25 32 66 31 44 37 95 30 59 81 73 8 3 33 37 20 59 49 56 28 34 70 22 11 97 99 89 94 37 82 48 95 57 55 50 47 21 74 25 12 5 78 42 43 3 73 67 24 6 79 6 20 34 24 90 93 31 47 68 26 30 32 98 73 99 58 64 45 17 13 73 33 55 12 88 2 91 95 6 7 86 78 19 82 65 91 89 9 11 64 40 36 62 25 60 76 82 66 99 18 40 41 65 20 3 33 70 23 52 55 85 8 35 55 72 33 1 51 60 81 97 20 64 9 70 5 14 33 80 23 88 27 45 61 62 59 6 61 93 22 35 38 61 29 74 19 39 45 83 16 84 99 11 69 67 73 58 12 47 71 78 9 99 14 2 77 48 32 85 76 59 18 16 1 21 42 28 18 58 87 13 17 46 76 84 68 9 80 2 5 83 99 45 78 1 92 51 36 66 52 22 50 10 2 67 92 44 64 36 36 39 5 15 60 10 18 8 72 73 74 35 71 34 3 7 94 2 52 73 77 62 62 25 23 34 98 64 93 66 29 60 9 27 83 93 47 60 89 16 82 66 81 80 17 95 39 63 89 82 96 82 31 19 20 41 22 24 54 3 19 93 45 42 83 70 19 83 28 52 27 43 39 17 91 26 57 49 26 16 69 9 68 72 81 62 59 11 13 69 94 70 43 9 63 69 32 68 9 41 28 40 69 32 70 6 37 17 11 85 56 37 58 46 5 15 68 33 97 58 42 5 31 65 95 43 57 36 17 75 21 53 14 96 24 94 83 47 79 48 22 83 99 43 12 14 28 58 4 17 52 45 13 71 12 71 15 27 1 4 8 18 75 1 53 14 93 17 90 16 52 96 83 97 34 40 1 19 1 40 90 59 49 48 88 58 70 30 41 16 61 20 4 67 74 58 57 2 32 64 34 77 43 69 46 77 54 85 52 8 79 90 29 53 87 77 60 94 25 72 32 72 20 19 84 77 83 70 34 3 55 91 38 73 1 54 36 34 86 37 68 66 91 96 48 67 39 27 84 57 25 26 42 79 91 96 75 3 71 13 71 82 99 97 70 94 52 69 2 97 93 48 85 78 92 60 15 75 15 16 92 51 45 79 72 23 52 52 57 9 47 90 38 77 14 96 4 6 29 99 60 58 33 93 22 32 38 39 73 44 59 33 53 21 52 25 31 5 99 89 10 19 82 27 45 6 12 1 71 98 75 11 26 98 48 22 92 40 38 55 22 87 8 36 47 49 5 89 17 45 53 21 41 7 73 4 20 88 55 10 85 98 17 83 83 31 28 63 86 90 33 91 47 23 46 85 34 3 74 52 51 39 60 79 1 95 1 10 48 67 19 19 8 37 30 59 28 22 69 99 23 41 78 68 70 53 36 39 72 68 70 22 82 76 2 74 65 94 70 70 65 87 57 42 39 28 67 94 17 89 25 88 53 95 4 34 52 77 94 88 62 70 40 72 75 45 96 12 11 46 4 10 38 15 74 72 71 75 85 79 89 52 88 81 16 68 43 78 15 23 21 48 94 63 7 82 66 60 10 31 18 47 25 36 6 54 54 31 94 90 59 11 3 2 91 54 73 43 22 17 14 81 97 14 36 93 4 63 84 9 14 53 58 94 55 21 3 91 13 66 35 54 56 79 65 52 76 59 9 17 66 59 23 46 10 56 48 75 20 49 64 95 55 60 12 56 46 92 74 39 17 23 36 98 72 38 4 23 92 68 84 36 54 98 45 29 66 48 13 81 40 75 91 32 98 95 98 47 82 67 69 91 36 45 2 38 51 18 7 55 95 81 54 64 34 46 72 25 28 1 13 29 98 19 47 95 39 83 31 13 33 11 99 46 69 24 95 63 81 6 75 11 69 35 72 46 94 4 28 79 46 2 25 91 10 67 83 23 24 24 48 24 75 6 89 53 24 13 86 80 33 60 24 89 71 22 76 4 25 4 8 73 93 61 17 88 92 56 87 84 67 22 96 39 87 48 14 48 10 32 59 20 61 41 93 5 81 62 24 61 46 47 74 19 6 40 27 14 45 59 99 63 3 78 30 91 13 58 99 89 19 85 29 82 46 68 24 91 37 15 73 16 48 16 76 40 90 73 86 93 24 13 55 15 65 61 90 87 63 17 42 85 77 27 77 71 62 97 91 18 39 18 87 59 20 29 7 12 2 93 87 25 60 44 43 64 15 18 42 92 86 84 90 29 17 20 73 35 47 25 84 89 89 19 31 84 42 52 16 95 19 74 7 41 6 70 38 33 87 6 45 5 46 92 1 90 98 5 27 79 82 51 79 56 28 86 4 10 11 77 80 51 99 18 11 87 72 31 67 9 85 79 36 36 3 84 54 62 80 70 91 73 75 6 76 71 95 6 24 69 73 81 6 71 2 85 80 5 96 18 70 45 52 82 5 97 72 21 90 16 29 21 52 2 9 43 98 30 65 12 36 61 69 17 24 49 19 39 94 46 98 38 32 29 20 20 49 24 70 61 4 85 18 66 16 45 28 14 98 83 68 55 5 13 78 73 23 29 77 90 57 94 10 84 22 12 68 90 24 96 66 17 55 88 5 14 23 38 5 25 73 42 55 63 65 12 13 33 1 46 30 64 22 42 77 63 51 5 33 94 40 87 11 86 11 6 78 18 56 75 5 89 93 51 66 72 46 4 58 42 52 4 45 96 72 83 50 58 90 77 47 48 39 73 97 65 34 52 57 49 10 11 48 20 33 1 87 1 85 88 82 51 53 7 73 79 38 45 57 52 92 6 94 89 31 46 42 28 44 81 32 61 97 97 55 79 37 17 60 96 97 55 74 36 1 21 93 80 94 36 26 21 31 33 53 35 2 20 3 24 72 93 87 11 62 35 16 86 62 7 72 71 94 17 98 50 67 12 87 24 23 24 14 88 79 63 12 25 37 43 63 3 71 44 31 10 63 19 46 50 77 5 83 21 38 78 62 12 67 81 3 87 16 6 33 94 71 11 78 69 92 45 3 72 51 89 50 47 15 59 83 20 77 11 90 15 53 76 30 2 83 12 26 54 11 54 43 32 70 95 2 11 98 12 38 42 5 15 39 15 5 76 99 74 59 44 47 57 94 16 24 64 54 14 12 52 14 54 56 64 65 7 96 95 85 84 46 96 8 2 85 7 71 52 60 76 83 67 3 86 12 70 56 99 83 82 76 96 99 53 75 73 73 31 65 92 43 7 83 80 59 43 12 85 53 6 12 71 31 15 12 90 56 31 79 4 82 89 52 84 22 31 60 58 49 27 62 73 94 77 40 32 5 41 13 60 24 28 89 15 74 96 74 31 60 18 58 55 90 12 50 67 24 89 15 80 45 57 86 25 4 78 89 35 81 76 57 76 3 26 22 2 62 89 68 57 8 35 35 54 51 34 63 17 93 19 19 89 28 31 40 40 62 1 35 57 21 34 32 69 88 59 46 16 97 80 59 48 39 66 49 23 54 53 88 81 28 16 54 30 30 37 46 81 35 3 66 37 74 97 57 7 41 43 53 18 20 48 62 39 55 36 73 52 7 25 31 80 93 74 8 76 16 72 55 53 12 38 64 23 97 39 38 9 2 47 1 29 62 9 19 53 25 25 6 7 21 3 55 57 44 93 19 92 15 10 17 87 72 32 28 4 89 14 86 12 70 4 22 53 71 64 45 9 45 84 12 74 68 99 73 68 91 33 87 26 81 13 71 78 29 86 53 83 34 13 90 94 41 55 4 68 84 53 22 37 45 53 75 84 50 82 68 22 17 59 50 36 9 24 63 31 49 17 33 37 21 25 26 19 96 35 90 55 20 51 83 5 57 72 44 66 1 81 64 32 82 61 79 69 44 46 95 43 25 20 75 30 36 29 53 83 50 54 76 40 69 28 66 14 47 33 34 88 81 98 22 48 21 50 75 56 21 78 47 39 40 68 10 94 80 50 80 41 58 48 74 14 32 75 19 36 67 19 18 36 12 31 74 80 93 41 93 10 1 45 98 30 65 69 42 56 92 19 43 10 63 14 93 47 50 65 56 15 86 19 98 21 36 30 67 90 10 16 22 84 75 39 11 94 38 79 85 11 2 79 33 82 41 25 13 17 33 24 80 88 84 65 85 12 73 2 54 42 69 96 58 86 89 84 71 65 77 12 26 81 51 80 23 6 97 97 34 73 83 4 20 17 50 6 57 77 72 76 91 70 29 18 35 82 20 98 87 1 42 49 9 58 70 44 26 89 33 56 17 41 26 21 43 20 98 66 88 36 56 9 47 92 83 38 55 67 26 14 37 50 37 62 28 90 71 21 46 63 14 63 27 54 2 51 1 35 56 12 26 3 70 44 62 61 32 61 60 87 51 63 3 30 55 8 89 98 90 50 59 41 89 77 95 34 83 74 28 93 19 5 62 27 61 45 13 2 77 80 38 72 84 42 72 19 10 82 67 21 3 93 64 52 51 79 27 80 68 71 71 57 96 51 61 1 54 98 32 98 28 97 56 11 17 90 3 48 38 3 74 23 5 47 41 42 36 62 56 80 71 69 29 42 34 27 63 53 76 53 54 58 71 29 4 79 56 33 28 34 94 10 87 65 10 2 66 73 59 44 48 38 28 17 17 95 23 37 31 90 80 41 13 61 35 62 80 39 30 83 18 88 33 38 69 64 99 12 96 85 52 23 3 9 84 23 68 77 84 69 10 35 15 44 61 10 47 41 20 89 12 32 71 13 34 81 78 77 66 91 72 29 56 30 6 67 72 67 75 33 38 50 47 50 16 20 60 17 40 84 82 40 97 67 7 71 64 46 25 84 62 83 97 30 37 61 57 53 75 56 11 45 12 78 85 16 86 64 95 19 55 80 29 38 46 83 83 53 37 64 52 9 81 99 47 13 93 71 59 96 96 8 50 25 9 98 33 40 99 98 90 73 80 75 26 75 93 83 18 54 12 27 98 92 30 36 64 14 72 38 5 56 80 77 99 52 74 22 43 13 82 97 61 63 91 91 10 9 87 88 16 50 80 40 76 39 73 53 98 41 62 11 80 40 76 51 38 1 41 88 98 83 22 29 28 8 15 40 57 25 66 76 3 56 71 16 99 37 42 80 66 17 53 85 55 34 41 40 98 72 11 76 32 86 87 75 64 68 45 62 53 19 43 19 21 80 76 88 26 8 34 71 72 14 69 90 50 49 54 35 90 27 95 86 60 72 52 89 86 12 91 74 78 85 31 23 85 64 9 18 21 65 59 1 54 94 48 87 27 42 3 39 23 80 37 95 80 49 24 40 38 43 3 66 30 67 78 83 44 2 54 59 83 75 54 31 95 93 70 44 21 17 8 97 6 71 6 33 41 99 26 94 12 92 50 91 15 36 13 63 4 85 49 69 79 67 49 41 95 48 65 50 79 1 71 13 86 45 63 20 30 61 60 43 18 79 62 16 96 2 60 35 36 8 61 87 55 86 43 79 66 65 55 28 25 33 13 97 66 90 7 15 99 33 97 53 31 2 14 60 61 99 61 69 46 52 32 23 90 95 24 55 10 11 24 9 60 76 81 19 46 46 99 95 65 82 89 60 31 4 23 9 60 20 85 7 9 91 52 25 61 66 56 16 70 74 18 24 75 89 5 63 88 16 23 64 76 22 5 27 22 42 73 95 88 28 97 45 95 39 98 31 76 83 85 53 65 36 30 49 20 75 52 91 89 8 5 23 76 20 7 28 78 87 68 77 71 31 89 86 93 54 46 22 84 13 8 24 8 88 94 63 40 70 50 23 16 55 36 7 62 41 98 81 64 64 37 30 10 63 34 18 92 46 55 42 21 76 23 52 74 42 12 53 20 90 64 28 63 52 51 64 60 24 11 10 49 64 28 37 66 26 36 43 52 17 35 58 67 86 38 28 99 91 90 98 24 1 79 27 81 8 48 39 10 84 71 65 87 46 41 89 23 69 4 80 44 89 10 39 40 79 12 51 2 69 36 61 94 23 17 72 11 48 28 31 34 78 36 15 89 89 43 83 47 61 60 33 14 89 30 9 27 9 43 10 79 43 13 27 16 73 70 93 22 55 33 34 39 60 26 30 5 27 1 79 68 65 1 50 26 45 2 85 61 93 42 36 17 84 30 43 63 43 97 5 61 12 47 92 59 4 66 15 20 6 90 75 86 70 86 7 57 6 81 20 52 43 71 61 45 20 69 69 5 48 78 93 4 24 19 43 17 2 73 89 15 40 74 17 59 44 43 48 84 7 53 91 18 63 65 73 87 88 37 22 36 93 59 91 11 78 85 13 38 25 19 50 43 17 38 41 87 24 65 11 22 11 87 80 92 58 94 97 52 64 12 80 80 84 16 55 37 20 67 56 40 73 79 28 51 60 39 81 84 90 91 60 25 59 14 46 63 56 47 40 98 4 78 84 43 13 24 13 67 53 2 49 84 43 53 94 47 19 81 97 41 77 24 90 76 40 46 6 87 66 34 87 5 20 7 78 45 81 70 19 60 87 47 52 46 60 43 64 31 40 35 22 56 71 75 38 18 31 38 46 13 68 91 98 45 18 46 78 60 59 28 32 81 4 67 32 94 4 93 75 97 32 94 76 87 55 46 11 36 24 97 47 96 80 92 28 5 6 98 38 28 94 46 4 90 49 56 63 14 85 88 81 56 46 44 66 91 63 14 31 33 63 2 47 97 62 15 49 9 87 20 83 31 37 63 90 17 58 74 5 65 25 44 68 76 65 20 33 37 23 46 20 66 56 47 37 8 94 59 13 97 73 8 8 89 26 87 3 62 63 53 76 22 44 89 92 13 92 67 54 70 65 17 35 78 31 10 75 79 14 63 94 19 58 1 27 22 90 61 23 41 69 89 42 71 23 76 39 63 96 39 28 5 33 19 54 19 81 19 82 94 78 46 16 96 78 84 1 58 11 31 29 56 57 13 87 44 12 27 82 98 80 33 48 81 63 62 45 79 69 32 81 74 16 14 7 17 29 20 54 17 96 42 87 47 28 67 55 86 92 10 21 76 86 35 64 2 98 34 62 82 46 37 53 26 41 86 74 38 89 12 83 85 79 96 21 49 68 16 82 70 59 97 14 99 22 10 46 58 96 27 98 48 71 78 9 63 91 17 32 95 97 58 92 64 39 91 7 29 37 76 99 78 94 34 8 28 90 83 11 73 87 92 64 54 55 14 81 44 28 44 83 53 22 23 59 3 27 54 3 68 52 17 64 33 9 19 46 82 46 57 11 95 55 85 65 28 77 83 46 85 49 68 62 31 90 16 78 34 35 29 27 13 84 58 65 29 6 47 40 90 53 29 2 43 27 75 3 49 74 63 4 55 15 40 2 26 30 64 45 6 93 63 41 14 71 62 65 35 2 25 4 87 27 41 14 72 68 69 27 80 25 69 49 92 75 28 30 39 4 70 71 8 96 35 37 31 91 41 80 20 53 10 20 89 33 92 27 55 73 88 68 63 21 45 27 64 96 2 18 57 83 12 90 70 34 80 96 43 15 44 15 87 16 94 63 90 3 81 58 94 2 78 83 56 80 53 10 58 85 77 80 87 14 38 50 47 65 30 62 73 23 90 13 74 15 69 97 97 96 35 50 98 97 93 42 91 71 35 42 88 58 1 94 1 19 17 92 61 85 95 77 92 9 16 89 67 85 14 40 93 7 51 35 83 45 12 14 2 89 24 18 66 97 87 71 11 5 58 57 66 67 74 28 52 24 45 22 56 2 89 20 85 23 24 26 40 44 74 37 94 74 45 1 59 85 19 89 72 74 90 20 93 17 46 19 15 91 89 53 1 22 57 16 39 20 50 84 23 75 34 71 63 44 9 77 59 74 71 64 37 25 21 95 35 70 20 45 45 54 59 91 19 65 49 3 37 71 10 94 80 62 47 17 4 25 56 89 63 41 36 88 30 82 91 56 41 97 24 55 38 8 6 18 46 21 50 87 44 72 68 35 41 39 37 81 87 13 15 67 28 49 98 15 78 44 96 63 90 41 73 78 19 59 39 7 97 29 18 24 69 88 57 98 75 12 45 74 10 85 91 57 4 12 93 34 18 51 19 1 13 55 74 88 89 85 18 75 29 79 99 5 58 76 18 9 89 94 56 81 63 22 47 64 84 29 58 24 45 70 88 34 14 97 32 16 15 37 86 98 81 55 48 40 68 48 28 71 95 19 41 60 46 8 60 45 60 77 13 26 2 62 93 61 15 39 30 19 99 52 40 22 31 89 71 86 4 80 47 29 72 46 43 32 58 8 8 38 97 90 6 41 27 62 29 59 41 52 60 42 75 87 40 33 30 58 4 80 19 25 94 27 59 14 83 23 19 62 79 56 18 20 77 70 34 46 80 63 24 96 8 35 94 90 84 44 35 21 20 20 48 47 89 49 37 59 53 18 44 17 58 38 59 18 18 78 79 88 8 57 1 8 69 81 32 13 92 72 57 28 30 12 92 35 94 83 44 39 78 12 59 88 79 93 82 48 83 1 84 45 30 81 81 49 89 48 82 31 38 98 42 52 87 80 79 14 27 77 75 90 63 53 58 18 67 10 37 54 12 86 64 28 23 17 4 27 52 93 11 35 50 8 20 76 92 84 15 41 11 58 65 60 57 90 47 46 73 89 51 65 21 3 20 99 2 93 78 77 76 57 32 72 98 88 47 95 88 18 48 83 83 9 50 31 11 33 9 14 7 46 43 89 82 14 51 71 82 87 17 28 9 7 85 11 76 46 36 34 37 46 80 21 67 6 63 3 69 72 13 17 21 2 29 67 19 52 73 82 18 99 31 9 37 78 65 66 29 64 54 20 83 11 18 21 19 48 12 32 9 65 22 67 24 94 22 21 30 13 24 35 34 68 11 52 39 54 36 7 48 12 37 18 86 38 87 18 68 68 22 15 13 78 47 21 81 73 50 54 61 13 75 69 58 19 78 35 81 15 6 47 69 79 64 54 53 25 88 69 48 77 62 92 34 53 18 25 69 72 87 49 70 53 8 32 98 40 86 28 26 88 47 12 15 22 31 93 79 9 72 88 87 49 58 53 79 68 73 63 66 84 90 64 17 46 43 87 91 14 77 23 31 76 93 52 72 88 91 98 66 18 12 10 50 18 37 57 11 49 37 99 66 93 3 93 41 65 2 18 81 49 66 78 82 81 94 25 65 41 81 37 1 40 11 4 93 9 64 99 69 27 73 61 14 28 80 1 10 21 52 36 9 38 53 30 46 83 72 61 95 43 16 95 39 41 56 23 32 16 8 67 32 79 76 82 60 77 11 6 60 5 95 88 40 14 15 76 23 39 93 69 1 98 50 83 92 25 95 76 99 26 9 85 47 48 27 56 61 29 6 4 58 16 16 90 48 67 83 42 33 41 47 2 99 33 46 53 84 82 23 76 60 30 26 10 62 52 81 16 44 17 90 71 61 61 24 47 22 69 46 4 84 24 54 65 26 38 34 70 75 98 65 44 30 35 27 64 99 58 73 75 38 99 42 70 17 21 49 31 92 63 46 25 53 46 13 3 75 23 32 93 51 2 59 62 53 27 64 17 87 16 47 69 34 18 53 70 76 12 64 52 77 36 73 72 40 3 3 11 52 26 1 64 43 75 60 40 81 10 55 28 52 57 82 63 79 62 24 63 65 80 16 95 15 33 62 90 24 92 88 62 68 15 30 78 50 91 55 1 58 58 30 44 9 35 82 53 61 94 99 62 15 20 66 52 8 5 57 9 98 15 70 52 56 77 7 82 98 9 62 93 7 10 41 33 94 72 57 73 97 76 15 59 92 92 99 57 31 87 68 14 59 54 64 34 3 99 15 53 39 46 23 11 51 73 26 88 78 14 12 5 97 73 47 36 80 94 54 98 91 77 39 85 96 18 49 16 46 23 83 96 36 99 64 34 9 21 1 1 12 26 27 25 5 28 82 4 33 90 37 2 14 45 58 53 20 15 30 77 63 47 64 41 1 97 51 67 43 16 90 16 98 56 50 16 41 52 8 79 37 34 22 63 9 53 41 58 5 76 50 14 81 85 54 62 14 91 8 70 12 99 60 19 39 83 8 84 22 57 93 43 38 94 73 22 55 81 99 39 41 20 89 16 39 44 82 9 39 82 40 30 6 85 29 88 63 10 86 68 21 8 45 3 97 55 39 41 2 82 17 64 36 44 3 67 75 50 77 82 31 33 97 3 83 71 48 87 44 75 67 38 23 46 1 87 8 87 13 28 91 23 16 93 25 58 38 29 97 88 49 97 88 94 64 67 82 71 34 56 39 67 51 66 31 1 28 67 52 24 96 89 2 44 67 26 70 35 37 30 65 3 54 31 13 10 43 93 92 74 75 49 82 3 68 31 89 12 51 50 53 16 59 67 88 12 24 46 69 13 91 47 68 5 22 3 44 74 53 24 61 41 47 46 7 66 51 16 12 61 69 69 3 12 5 87 54 96 31 99 64 85 11 10 74 86 64 68 26 14 31 48 82 61 71 29 13 71 18 27 88 46 14 27 42 58 52 7 90 47 57 7 98 3 52 17 69 30 58 29 25 44 39 46 73 97 67 46 8 20 93 85 11 86 28 88 76 63 51 15 72 95 59 48 35 74 54 83 64 80 80 8 52 32 10 22 36 95 31 3 87 1 39 47 31 45 8 17 57 89 29 77 99 19 3 69 42 57 17 57 49 75 11 16 1 19 52 16 84 73 69 18 59 10 81 56 24 59 53 54 1 24 6 87 25 72 57 8 50 59 35 36 56 44 25 71 47 91 41 85 95 18 34 94 69 64 18 90 60 69 52 66 89 94 87 17 61 24 27 86 66 41 50 43 27 6 92 40 99 86 58 95 47 31 49 66 15 34 73 20 61 93 91 27 30 56 53 27 61 23 41 33 32 24 57 15 55 69 48 95 25 11 56 97 36 3 95 74 25 74 72 76 37 67 36 87 35 30 2 56 70 25 40 46 28 13 66 67 74 97 1 21 81 11 55 29 94 12 77 33 21 90 77 29 1 81 24 27 7 31 97 11 57 72 80 92 43 20 75 52 48 95 16 27 29 61 10 64 54 9 40 47 3 84 68 18 98 52 6 33 97 23 1 47 77 31 30 82 84 77 96 15 92 57 85 77 61 38 71 43 7 37 6 81 85 21 29 18 50 11 99 88 96 35 15 14 36 61 4 5 57 28 10 25 23 57 31 62 15 80 47 37 15 22 89 15 15 66 64 9 48 38 62 12 49 47 24 4 29 18 66 65 31 82 51 94 81 83 6 16 90 47 87 49 61 62 3 76 49 3 32 48 88 74 93 39 60 19 71 88 29 36 60 4 60 12 23 13 63 72 96 93 30 70 61 57 21 94 34 27 54 84 33 96 75 9 8 75 82 62 63 62 73 72 27 93 81 64 69 38 15 46 15 93 28 3 35 71 31 62 11 70 42 18 96 19 57 6 29 30 72 41 42 8 84 58 30 20 12 42 87 56 76 1 83 11 88 5 66 73 36 47 59 13 38 96 80 14 64 17 78 33 1 17 60 81 23 61 9 1 14 18 86 65 53 84 98 1 87 70 58 90 31 24 84 30 53 7 25 74 99 38 43 56 60 31 59 14 16 49 75 55 73 45 99 81 48 77 70 94 44 98 53 28 50 79 80 39 13 96 54 39 90 80 71 83 89 91 94 64 84 99 5 46 31 78 27 27 82 61 67 18 87 64 90 42 37 37 88 88 97 29 69 7 24 25 97 75 17 42 92 40 69 24 62 87 87 26 69 50 98 57 72 45 43 45 72 45 15 94 76 24 14 18 43 10 15 84 92 48 37 27 52 95 95 40 77 1 65 50 48 23 58 56 67 33 52 96 66 27 46 34 21 39 16 39 35 24 43 36 19 71 90 57 6 6 26 71 92 63 63 93 20 78 83 6 7 54 61 79 36 4 79 77 34 81 22 38 62 20 60 66 9 22 88 30 67 45 79 85 80 68 14 26 61 22 1 94 18 22 66 94 55 93 53 17 83 8 72 31 8 54 52 26 2 70 81 47 21 50 87 74 46 17 63 48 64 68 68 23 36 22 54 16 28 3 41 67 70 6 29 75 19 31 87 77 23 44 15 93 73 75 89 31 35 5 55 81 15 85 73 45 59 86 44 26 85 86 10 70 42 38 51 80 85 35 40 95 26 38 89 62 89 4 41 77 79 62 73 57 66 99 25 1 60 19 55 46 21 26 81 78 43 89 57 24 23 51 81 37 93 29 39 56 5 70 37 61 99 24 13 69 79 32 86 43 81 26 70 74 7 52 41 10 1 95 30 55 24 95 23 60 57 64 91 61 45 20 2 26 90 87 43 64 30 76 3 90 26 11 33 10 27 51 65 40 59 5 21 86 87 45 10 66 91 80 43 8 36 51 24 20 11 27 11 76 56 26 71 74 26 82 30 6 41 4 88 39 72 18 34 48 74 16 29 59 43 36 83 67 83 92 45 37 3 15 95 3 77 75 44 99 53 55 42 91 97 86 93 34 74 26 89 86 37 97 28 87 37 50 13 18 75 40 49 89 6 88 36 96 66 32 42 31 61 78 31 58 67 50 18 64 20 90 9 26 16 10 9 31 57 93 54 76 67 56 11 94 67 22 1 46 23 23 94 22 17 50 65 61 75 78 11 63 73 7 49 15 91 8 58 16 41 8 89 52 88 23 90 77 41 52 31 66 54 16 72 65 24 43 44 64 30 74 52 21 10 77 9 90 35 22 86 16 4 86 35 96 18 58 98 84 59 37 68 83 18 93 81 15 31 44 84 37 23 35 61 43 68 37 26 2 12 23 64 76 77 96 31 20 68 85 8 21 21 84 39 47 97 79 68 45 36 50 26 99 59 40 22 43 93 60 45 2 12 95 36 68 15 3 96 29 65 1 40 64 54 10 5 20 8 45 11 46 27 81 5 87 21 14 85 94 29 15 9 54 70 12 19 65 15 66 87 90 25 62 43 59 48 33 93 79 7 91 68 85 61 92 14 69 99 66 49 7 26 82 45 22 75 8 96 14 49 60 80 42 97 53 26 53 49 8 45 6 63 50 70 16 55 25 32 4 7 15 4 95 24 19 10 97 67 61 86 82 31 49 88 70 16 54 24 87 26 33 7 24 93 67 98 29 16 34 7 67 4 67 62 6 65 53 36 9 94 53 89 32 72 12 42 56 72 87 91 99 59 65 34 13 36 74 51 49 12 82 63 55 81 58 19 45 92 99 15 29 53 62 87 6 96 62 71 85 33 50 24 17 78 53 4 57 62 74 35 4 40 81 53 63 2 21 85 22 28 50 93 88 49 80 21 82 42 4 25 58 37 55 55 8 84 30 61 99 48 47 51 92 60 2 43 41 3 6 48 73 20 11 80 60 36 15 71 6 86 72 38 18 83 87 40 37 6 79 61 34 41 30 90 72 24 28 52 79 56 93 43 52 59 28 86 91 49 14 91 15 9 18 13 89 57 8 58 4 61 31 97 7 43 24 76 77 44 76 23 98 6 86 95 68 33 68 89 99 68 17 9 20 30 8 13 92 25 80 15 31 14 97 50 35 32 51 33 59 63 80 68 40 79 77 81 39 51 1 83 55 28 34 74 32 11 71 5 92 1 89 22 27 5 43 13 41 34 1 43 47 92 17 2 17 62 53 20 1 63 34 75 1 43 5 12 35 16 17 5 95 53 89 15 19 20 62 42 2 63 73 54 14 51 9 12 54 81 31 73 10 67 66 15 61 39 11 77 59 51 52 13 51 37 86 58 24 69 36 67 17 16 62 13 76 42 5 72 56 12 66 25 93 28 46 41 42 45 19 27 12 62 80 62 31 49 26 95 74 46 57 76 71 11 99 99 93 56 74 38 94 99 19 17 96 9 34 31 69 3 66 29 28 18 85 3 44 20 2 41 21 25 42 68 89 21 1 83 14 90 34 43 30 9 8 37 97 61 56 55 73 22 8 41 3 24 69 38 35 66 11 8 45 34 95 35 97 83 75 55 38 16 62 83 62 4 66 29 54 68 69 92 17 37 59 86 62 97 74 60 48 11 28 7 67 1 28 43 82 74 20 23 84 94 43 6 93 38 32 80 48 97 68 73 82 54 5 40 69 59 37 34 92 77 85 42 27 16 6 19 67 3 5 61 28 92 51 94 83 68 27 13 94 23 48 50 44 43 30 3 22 29 24 37 22 42 83 59 39 84 57 55 24 22 20 2 34 90 28 75 68 9 64 97 31 79 83 82 45 21 30 33 27 34 31 78 56 50 13 32 8 72 85 10 90 7 41 8 34 87 72 84 27 29 44 52 17 58 65 35 73 10 1 35 41 67 46 66 62 14 28 7 89 49 41 79 19 38 90 66 2 63 41 86 79 21 14 19 12 73 38 22 30 20 98 95 97 20 87 17 69 80 38 60 1 71 73 86 57 90 62 74 85 54 96 9 53 91 17 73 91 81 34 21 41 6 93 18 98 82 1 10 77 55 64 66 56 83 90 88 62 49 30 4 59 15 72 58 37 16 67 92 4 38 47 88 8 70 72 28 67 13 70 99 36 66 64 34 41 1 23 85 3 53 73 13 45 7 39 25 69 83 53 68 78 19 15 43 92 88 26 91 57 82 50 94 85 88 87 56 9 50 88 95 81 47 52 30 24 46 77 41 39 72 55 81 99 89 94 56 46 46 89 57 96 15 8 16 38 60 79 1 32 33 79 5 54 61 50 14 71 23 13 71 1 68 6 50 42 7 80 54 76 82 43 27 25 32 37 7 93 74 93 20 15 38 95 96 11 43 49 91 6 91 31 74 45 39 19 85 11 99 18 12 19 70 19 86 64 14 86 54 4 87 30 30 67 33 7 46 4 89 88 31 19 53 5 69 86 41 80 17 25 65 29 67 74 56 99 28 22 61 53 52 15 98 65 75 95 88 79 57 68 34 68 20 78 28 20 77 47 73 78 27 19 51 28 23 47 18 85 1 32 5 82 41 63 13 58 75 21 82 38 48 48 22 22 2 25 51 99 39 58 90 73 2 60 49 30 90 7 16 4 9 85 3 85 65 85 49 31 18 33 15 24 13 61 32 49 33 68 51 46 11 5 5 90 96 65 38 1 40 86 42 59 11 59 31 99 10 13 98 45 23 4 55 49 34 37 96 76 37 90 40 47 23 33 90 2 58 14 22 13 73 92 39 78 50 55 79 20 73 23 4 12 77 52 94 80 4 26 95 1 32 91 59 79 49 96 29 90 27 84 82 82 77 24 58 14 6 91 82 99 95 9 41 90 78 71 11 79 43 4 24 15 81 26 56 45 4 46 19 64 62 29 74 74 74 78 28 28 33 42 86 68 1 30 11 90 4 63 8 89 69 24 51 59 97 7 69 54 39 52 34 12 73 12 93 23 41 16 1 99 13 15 30 18 18 28 76 68 79 89 91 82 94 20 45 17 16 98 39 85 16 38 8 60 17 55 52 14 55 8 18 93 96 53 71 35 22 18 6 16 84 77 71 71 86 40 15 55 86 80 32 16 28 2 31 39 16 24 31 69 37 35 15 69 59 29 2 74 59 34 13 82 66 62 27 63 33 56 39 50 91 52 12 54 56 56 50 3 71 72 40 72 71 34 71 68 9 89 61 3 39 42 95 13 49 8 52 32 95 93 91 42 23 57 92 45 78 69 5 4 42 81 39 58 22 37 27 38 17 83 9 14 73 56 6 73 71 83 91 37 33 61 26 62 55 49 1 83 72 73 48 9 54 89 3 57 8 39 10 39 10 59 69 34 78 72 92 32 9 62 43 79 13 32 27 47 47 2 7 72 99 68 58 26 26 89 67 86 9 2 82 72 64 22 78 50 29 34 50 15 21 47 57 21 69 77 98 65 61 93 88 37 23 65 85 11 67 9 27 33 69 6 97 17 32 53 89 43 19 66 52 28 79 57 20 87 3 63 31 40 43 5 32 79 66 65 96 70 89 74 94 50 50 98 81 96 37 44 22 40 37 35 70 59 57 52 11 56 1 6 68 34 12 36 51 80 23 68 80 36 64 88 17 17 32 53 5 52 51 5 95 76 95 66 15 57 13 93 36 72 47 17 83 41 63 94 16 42 77 35 52 58 91 35 85 37 36 66 36 26 74 23 2 95 28 87 95 30 3 63 76 43 65 82 44 59 86 88 5 58 15 32 9 32 61 57 26 51 44 60 84 85 61 51 33 24 13 93 8 37 69 64 86 77 7 95 32 3 14 63 67 57 26 20 25 83 17 61 71 64 65 60 77 82 44 45 53 15 14 30 40 25 73 6 12 88 2 7 66 19 71 8 91 17 31 33 16 55 98 16 58 89 50 48 52 81 56 64 25 79 88 85 95 24 3 68 77 27 26 11 77 39 67 20 81 7 20 21 30 86 44 41 38 34 56 17 15 80 73 9 23 10 70 68 10 73 19 33 13 74 42 56 63 94 13 52 23 63 62 31 62 52 82 94 69 19 14 18 41 22 56 18 12 40 49 73 41 73 95 85 99 96 51 85 4 62 65 66 43 69 80 58 66 22 21 36 80 43 11 32 4 48 11 45 75 41 71 76 39 60 20 23 65 37 13 11 67 68 76 12 37 62 13 47 50 12 62 71 67 29 9 34 11 3 86 88 68 9 90 92 1 98 58 22 95 54 36 43 52 45 84 72 38 76 51 50 90 12 24 92 33 29 65 36 73 3 19 8 59 98 62 60 37 76 34 42 41 24 84 67 44 6 1 71 67 13 13 88 35 14 96 73 34 84 88 51 83 35 59 80 73 70 44 66 97 88 95 8 28 13 86 35 41 41 72 25 61 29 66 7 79 34 73 17 76 73 67 32 93 40 62 73 70 1 97 50 87 51 38 99 68 85 84 19 99 80 25 64 37 85 41 25 44 62 54 10 36 45 16 26 81 96 3 59 73 14 70 81 43 84 24 94 54 36 97 67 11 50 19 53 21 52 94 26 66 18 30 98 88 86 80 53 31 59 99 38 83 46 36 51 69 93 18 75 75 58 71 64 4 8 55 88 2 68 90 33 6 87 67 55 21 67 20 8 69 50 81 86 20 71 33 22 74 86 90 65 6 5 97 74 40 37 83 2 57 29 39 7 65 78 62 72 86 4 53 51 82 6 67 36 13 92 59 3 32 60 85 53 71 51 1 25 54 95 9 40 93 33 69 8 76 36 84 15 32 40 56 22 45 10 21 83 93 63 73 30 7 53 54 23 89 48 64 32 54 93 37 38 62 22 11 96 11 15 23 6 7 50 50 38 18 58 60 57 14 3 94 73 7 88 94 96 44 38 13 99 23 50 77 32 15 79 69 52 94 61 36 46 44 67 39 83 34 93 98 69 39 26 91 67 97 53 9 24 22 64 22 67 63 82 59 68 9 15 57 5 26 12 59 84 58 87 80 3 83 14 40 78 68 11 26 14 27 71 37 31 85 18 6 67 2 13 50 33 39 62 50 75 87 45 13 20 87 85 93 4 2 91 97 46 31 39 50 16 63 51 89 86 71 54 9 2 18 55 95 23 84 63 95 50 16 36 95 9 10 76 32 69 10 47 14 18 16 28 77 43 29 96 35 38 3 1 23 41 83 42 32 88 17 97 16 42 30 39 5 45 6 93

2130200908 887056
2011-08-02 11:55
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 27楼 laoyang103
补充 若 n % (k - 1) == 1,则第一次合并 k 堆
2011-08-02 13:43
q7408695
Rank: 2
等 级:论坛游民
帖 子:22
专家分:50
注 册:2011-8-2
收藏
得分:0 
程序代码:
/***********************************************************/
/**小弟学C不久...所以写的东西比较浅显,见谅见谅,呵呵.******/
/**下面是自己写的关于这个题目的算法,望高手们指教。谢谢!****/
/***********************************************************/
#include<stdlib.h>
#include<stdio.h>
void main()
{
    int i,j,n,k,*stone;
    printf("请输入石堆数:");
    scanf("%d",&n);
    printf("请输入可合并的最大堆数:");
    scanf("%d",&k);
    printf("\n"); 

    stone=(int *)calloc(n,sizeof(int));                //开辟放置石子的内存。
    if(stone==NULL)
    {
        printf("内存分配失败!\n");
        exit(0);
    }
    else
        for(i=1;i<=n;i++)
        {
            printf("请输入第%2d堆的石子数:",i);        //输入每堆的石子数。
            scanf("%d",stone+i-1);
        }

    int temp;
    for(i=0;i<n;i++)                                     //从小到大排序。
        for(j=i+1;j<n;j++)
            if( *(stone+i) > *(stone+j) )
            {
                temp=*(stone+i);
                *(stone+i)=*(stone+j);
                *(stone+j)=temp;
            }
    for(i=0;i<n;i++)
    {
        if(!(i%5))
            printf("\n");                             //每输出5个空行。
        printf("%d\t",*(stone+i));                    //演示排序后结果。

    }

    int max=0;                                        //求出最大费用。
    for(i=1;i<=n;i++)
        max+=i*(*(stone+i-1));                        //(思路为每次选择最大的两个值相加,
    max-=(*(stone+n-1));
    printf("\n\n最大费用为:%d;\n",max);               //很容易知道每个数被加了多少次)。

    int min=0;                                        //求出最小费用。
    while(n>k)
    {        
        n-=k;
        temp=0;
        for(i=0;i<k;i++)                              //单次选择的k个最小的数。
            temp+=*(stone+i);
        min+=temp;                                    //min每次自加上。
        for(i=0;i<n;i++)
            *(stone+i)=*(stone+i+k);                  //选择过的石子堆没用了,用后面没选择的一次顶上。
        for(i=0;i<n;i++)
            if(temp<*(stone+i))                       //将刚才合并的那个石子堆插入其中。
            {
                for(j=n;j>i;j--)
                    *(stone+j)=*(stone+j-1);
                *(stone+i)=temp;
                break;
            }
        if(temp>*(stone+n))                          //刚才合并的石子堆可能是最大的。
            *(stone+n)=temp;                         //这时就放在最后面。
        n++;                                         //这个要自己想下,每次合并后
    }                                                //其实减少的堆数是k-1;
    for(i=0;i<n;i++)
        min+=*(stone+i);                             //将剩余不足k堆的加起来。
    printf("最小费用为:%d.\n\n",min);
}

呵呵
2011-08-02 16:31
快速回复:求助,不知道哪里有问题,按理说是对的,但测试数据太大,没法试。。。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023018 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved