misschuer

常用链接

统计

积分与排名

百事通

最新评论

合并果子

#include <iostream>
#include 
<queue>
using namespace std;

typedef 
struct node
{
    
int data;
    
    friend 
bool operator <(node a , node b)
    
{
        
        
return a.data > b.data;
        
    }

    
}
Point;

int main()
{
    
    priority_queue
<node> Q;
    
    
int n , sum;

    Point v , a , b , x;
    
    
while (scanf ("%d" , &n) != EOF)
    
{
     sum 
= 0;
        
       
while (n --)
       
{
         scanf (
"%d" , &v.data);

         Q.push(v);
       }


         
while (!Q.empty())
         
{
           
            a 
= Q.top();

            Q.pop();

            b 
= Q.top();

            Q.pop();

            x.data 
= a.data + b.data;

            sum 
+= x.data;

            
if (!Q.empty())
            
                 Q.push(x);

         }


         printf (
"%d\n" , sum);

         
while (!Q.empty())
         
{
           Q.pop();
         }


    }


    
return 23;
}

posted on 2009-04-21 19:50 此最相思 阅读(903) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理