首页 > 代码库 > Bestcoder4——Happy Three Friends(二叉堆)
Bestcoder4——Happy Three Friends(二叉堆)
本文出自:http://blog.csdn.net/svitter
Happy Three Friends
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 0 Accepted Submission(s): 0
Problem Description
Dong-hao , Grandpa Shawn , Beautful-leg Mzry are good friends. One day , they want to play a game. There are 6 numbers on the table. Firstly , Dong-hao can change the order of 6 numbers. Secondly , Grandpa Shawn take the first one and the last one , sum them up as his scores. Thirdly , Beautiful-leg Mzry take any of 3 numbers from the last 4 numbers , and sum them up as his scores. Finally , if Grandpa Shawn‘s score is larger than Beautiful-leg Mzry‘s , Granpa Shawn wins! If Grandpa Shawn‘s score is smaller than Beautiful-leg Mzry‘s , Granpa Shawn loses. If the scores are equal , there is a tie. Nowadays , it‘s really sad that Grandpa Shawn loses his love. So Dong-hao wants him to win(not even tie). You have to tell Dong-hao whether he can achieve his goal.
Input
There is a number T shows there are T test cases below. ( T <= 50) For each test case , there are 6 numbers Ai ( 1 <= Ai <= 100 ).
If Dong-hao can achieve his goal , output "Grandpa Shawn is the Winner!" If he can not , output "What a sad story!"
Sample Input
3 1 2 3 3 2 2 2 2 2 2 2 2 1 2 2 2 3 4
Sample Output
What a sad story! What a sad story! Grandpa Shawn is the Winner!HintFor the first test case , {3 , 1 , 2 , 2 , 2 , 3} Grandpa Shawn can take 6 at most . But Beautiful-leg Mzry can take 6 too. So there is a tie. For the second test cases , Grandpa Shawn loses. For the last one , Dong-hao can arrange the numbers as {3 , 2 , 2 , 2 , 1 , 4} , Grandpa Shawn can take 7 , but Beautiful-leg Mzry can take 6 at most. So Grandpa Shawn Wins!
AC代码:
Output
#include <iostream> #include <stdio.h> #include <string.h> #include <vector> #include <map> #include <algorithm> #include <queue> #include <cmath> #define INF 0xffffff #define lln long long #ifdef ONLINE_JUDGE #define FOI(file) 0 #define FOW(file) 0 #else #define FOI(file) freopen(file,"r",stdin); #define FOW(file) freopen(file,"w",stdout); #endif using namespace std; struct Node { int n; bool operator < (const Node & a) const { return n < a.n; } }; int n; int main() { //FOI("input"); //FOW("output"); //write your programme here int i, j, k; int n; int t; int sum, sum2; Node temp; priority_queue <Node> q; scanf("%d", &t); while(t--) { for(i = 0; i < 6; i++) { scanf("%d", &temp.n); q.push(temp); } sum = 0; temp = q.top(); sum += temp.n; q.pop(); temp = q.top(); sum += temp.n; q.pop(); //cout << sum << endl; sum2 = 0; for(i = 0; i < 3; i++) { temp = q.top(); sum2 += temp.n; q.pop(); } //cout << sum2 << endl; if(sum > sum2) puts("Grandpa Shawn is the Winner!"); else puts("What a sad story!"); } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。