Advertisement

7-17 修理牧场 (25分)

阅读量:
复制代码
    #include <iostream>
    #include <vector>
    #include <queue>
    
    using namespace std;
    
    int main()
    {
    	priority_queue<int, vector<int>, greater<int> > a;
    	int n, temp;
    	
    	cin >> n;
    	int i;
    	for (i = 0; i < n; i++)
    	{
    		cin >> temp;
    		a.push(temp);
    	}
    	int sum = 0;
    	while (!a.empty())
    	{
    		int x = a.top();  //取队列头元素,这与栈不同,栈(stack)是取栈顶元素
    		a.pop();   //弹出队列头元素
    		if (a.empty())
    			break;
    		int y = a.top();
    		a.pop();
    		x += y;
    		sum += x;
    		a.push(x);
    	}
    	cout << sum;
    	
    	return 0;
    }

全部评论 (0)

还没有任何评论哟~