zoj 3959 Problem Preparation

来源:互联网 发布:双语名著阅读软件 编辑:程序博客网 时间:2024/06/05 21:51

题目链接:Problem Preparation


题目大意:给你一堆数,需要做到的是最小值必须是1,且1的个数不少于两个,最大值只能有一个,相邻两个数之间差的绝对值不能大于2(如果相邻两个数有最大值就不做这个要求),数的个数不能小于10或者大于13。


题目思路:直接按照题目来写和判断就可以了

#include <bits/stdc++.h>using namespace std;int main(){    int t,n,a[1005],flag;    scanf("%d",&t);    while(t--){        scanf("%d",&n);        flag = 0;        for(int i = 0;i < n;i++)            scanf("%d",&a[i]);        sort(a,a+n);        if(n < 10||n > 13) flag = 1;        else{            if(a[0] != 1||a[1] != 1||a[n-1] == a[n-2]) flag = 1;            else{                for(int i = 1;i < n-1;i++)                    if(abs(a[i]-a[i-1]) > 2)                        {flag = 1;break;}            }        }        if(flag == 1) puts("No");        else puts("Yes");    }    return 0;}

0 0
原创粉丝点击