现在的位置: 首页 > 综合 > 正文

NYOJ55 懒省事的小明【multiset的用法】

2016年10月04日 ⁄ 综合 ⁄ 共 463字 ⁄ 字号 评论关闭

原题链接

这题很坑,要用long long

#include <cstdio>
#include <set>
using namespace std;

int main(){
	int t, n;
	long long temp, sum;
	multiset<long long> mst;
	multiset<long long>::iterator it;
	scanf("%d", &t);
	while(t--){
		scanf("%d", &n);
		while(n--){
			scanf("%lld", &temp);
			mst.insert(temp);
		}
		sum = 0;
		while(mst.size() > 1){
			it = mst.begin();
			temp = *it;
			mst.erase(it);
			it = mst.begin();
			temp += *it;
			mst.erase(it);
			sum += temp;
			mst.insert(temp);
		}
		mst.clear();
		printf("%lld\n", sum);
	}
	return 0;
}
800940 长木 懒省事的小明 Accepted 124 572 C/C++ 04-07 17:47:52

抱歉!评论已关闭.