Problem_5

来源:互联网 发布:tcga数据库 编辑:程序博客网 时间:2024/06/03 21:49

Problem Description

第一学期已经接近尾声了,通往寒假的大门由八位Exam把守。
作为Exam大家族里的二哥,当然要比之前那些Exam们要凶恶的多。
二哥养了一群恶犬,如果你能战胜他们,二哥就放你过去。
当然不是让你赤手空搏,二哥也给你准备了同样数目的几只恶犬。
已知你的每只恶犬只能攻击二哥对应位置的恶犬,
当你的某只恶犬进行攻击时,会同时遭受敌方和其左右两只恶犬的攻击,如果某侧没有恶犬或者已被消灭,则该侧不会对你的恶犬造成伤害。
已知每只斗犬的攻击力,如果你的当前进行攻击的恶犬攻击力大于等于对方及左右两侧恶犬造成的总攻击力,就可以消灭掉敌方对应的那一只恶犬,否则不能消灭对方。
你需要提前计算出能否把二哥的恶犬全部消灭。
Input
多组输入
每组先输入一个整数n(0 < n < = 1000)表示恶犬数目。
第二行n个数ai(0 < ai < = 100),表示二哥的n只恶犬的攻击力。
第三行n个数bi(0 < bi < = 100),表示你相对应的n只恶犬的攻击力。
Output

每组数据输出一行。如果能把二哥的恶犬全部消灭,则输出“Fighting!!!”。
否则输出“QAQ!!!”
Example Input

4
1 1 1 1
2 2 2 2
4
1 1 1 1
1 2 2 1
3
1 1 1
2 1 2

Example Output

Fighting!!!
QAQ!!!
Fighting!!!

Hint

对于第一组数据,
可以从左到右或者从右到左依次攻击
1 1 1 1
↑ ↑ ↑ ↑
2 2 2 2
如果中间两只任何一只先攻击,由于敌方左右两侧恶犬未被消灭,攻击力低于敌方攻击力,则无法消灭敌方。对于第三组数据,第一只和最后一只必须先消灭敌方对应位置的恶犬,第二只才能消灭敌方第二只。 否则第二只先攻击,攻击力低于敌方第二只联合两侧的攻击力,会被消灭

#include<stdio.h>int main(){    int n, t;    while(scanf("%d",&n)!=EOF)    {        int flag = 1;        int a[1005] = {0};        int b[1005] = {0};        for (t = 1;t <= n ;t ++)        {            scanf("%d",&a[t]);        }        for (t = 1;t <= n; t ++)        {            scanf("%d",&b[t]);        }        while(flag != 0)        {                int count = 0;            for (t = 1;t <= n;t ++)            {          if (a[t] != 0)          {            if (b[t] >= a[t - 1] + a[t] + a[t + 1])            {                a[t] = 0;                count ++;            }          }          else          continue;            }            if (count == 0)            flag = 0;        }        flag  = 1;        for (t = 1;t <= n ;t ++)        {            if (a[t] != 0)            {                flag = 0;                break;            }        }        if (flag == 1)        printf("Fighting!!!\n");        else        printf("QAQ!!!\n");    }    return 0;}
1 0
原创粉丝点击