本文出自: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;
while(!q.empty())
q.pop();
if(sum > sum2)
puts("Grandpa Shawn is the Winner!");
else
puts("What a sad story!");
}
return 0;
}