HDU6147 Pokémon GO II (2017百度之星程序设计大赛

来源:互联网 发布:淘宝卖家刷一单10元 编辑:程序博客网 时间:2024/06/05 04:19

乱搞

题目传送门

特判三种情况:
①:a[i-3]>=a[i-1]&&a[i]>=a[i-2]
这里写图片描述

②:a[i-3]>=a[i-1]&&a[i-3]<=a[i-1]+a[i-5]&&a[i-2]>=a[i-4]&&a[i]+a[i-4]>=a[i-2]

这里写图片描述

③:x3==x1&&x2<=a[i]+x4

这里写图片描述

扫一遍就好啦!

代码:

#include<cstdio>#include<algorithm>#include<cstring>#define MAXN 1000000using namespace std;int a[MAXN+5];int t,n;int main(){    scanf("%d",&t);    while (t--){        scanf("%d",&n);        memset(a,0,sizeof(a));        for (int i=1;i<=n;i++)            scanf("%d",&a[i]);        bool flag=false;        for (int i=4;i<=n;i++){            int x1=a[i-1],x2=a[i-2],x3=a[i-3];            if (x3>=x1&&a[i]>=x2){                printf("%d\n",i);                flag=true;                break;            }            if (i>=5){                int x4=a[i-4];                if (x3==x1&&x2<=a[i]+x4){                    flag=true;                    printf("%d\n",i);                    break;                }            }            if (i>=6){                int x4=a[i-4],x5=a[i-5];                if (x3>=x1&&x3<=x1+x5&&x2>=x4&&a[i]+x4>=x2){                    printf("%d\n",i);                    flag=true;                    break;                }            }        }        if (!flag)            printf("Catch you\n");    }    return 0;}
原创粉丝点击