题目链接:打怪的力量
题面:
打怪的力量
Time Limit:1000MS Memory Limit:32768K
Description:
Tyr最喜欢吃罐装的菠菜,因为Tyr的力量来自于吃掉的菠菜。每次Tyr出去冒险的时候都会带上很多的菠菜罐头,当遇到危险的时候,他就会从背包里拿出菠菜罐头,以最快的速度吃掉它们,以最快的速度增加力量,从而克服困难。根据历史的统计数据,Tyr拿出一个菠菜罐头需要花费A s的时间,吃掉一个菠菜罐头的时间是B s。每当Tyr遇到一个怪物的时候,怪物会在C s之后的时间里吃掉Tyr。但是,如果Tyr能够在C s的时间里把力量从原来的D增加到E,他就能够打败怪物。 现在又有一个怪物出现在Tyr面前了!Tyr能够打败怪物吗?Input:
输入数据有多组。第一行是一个整数N(1<=N<=10),表示有N组测试数据。每组测试数据有2行: 第一行:首先是一个整数M(1<=M<=10000),表示Tyr的背包里有M个菠菜罐头;其后M个整数表示每个菠菜罐头可以增加的力量。 第二行:A B C D EOutput:
对于每组测试数据,如果Tyr能够打败怪物,请输出“Tyr is great!”;否则请输出“Tyr is not so great!”。Sample Input:
2 4 1 1 1 1 1 1 6 12 15 4 1 1 1 1 1 1 3 12 15
Sample Output:
Tyr is great! Tyr is not so great!
Source:
Jin Shujing
题意:模拟吃罐头就好了,先吃加能量最多的,一直吃直到超时,最后比较是否到达e即可。
代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
int x,n,a,b,c,d,e,store[10005],tmp,t,tt,p;
cin>>x;
while(x--)
{
cin>>n;
for(int i=0;i<n;i++)
cin>>store[i];
sort(store,store+n);
cin>>a>>b>>c>>d>>e;
t=a+b;
tt=t;
p=n-1;
while(tt<=c&&p>=0)
{
d+=store[p];
p--;
tt+=t;
}
if(d>=e)
cout<<"Tyr is great!\n";
else cout<<"Tyr is not so great!\n";
}
return 0;
}