zoukankan      html  css  js  c++  java
  • A. Be Positive

    A. Be Positive

    time limit per test
    1 second
    memory limit per test
    256 megabytes
    input
    standard input
    output
    standard output

    You are given an array of nn integers: a1,a2,,ana1,a2,…,an. Your task is to find some non-zero integer dd (103d103−103≤d≤103) such that, after each number in the array is divided by dd, the number of positive numbers that are presented in the array is greater than or equal to half of the array size (i.e., at least n2⌈n2⌉). Note that those positive numbers do not need to be an integer (e.g., a 2.52.5 counts as a positive number). If there are multiple values of dd that satisfy the condition, you may print any of them. In case that there is no such dd, print a single integer 00.

    Recall that x⌈x⌉ represents the smallest integer that is not less than xx and that zero (00) is neither positive nor negative.

    Input

    The first line contains one integer nn (1n1001≤n≤100) — the number of elements in the array.

    The second line contains nn space-separated integers a1,a2,,ana1,a2,…,an (103ai103−103≤ai≤103).

    Output

    Print one integer dd (103d103−103≤d≤103 and d0d≠0) that satisfies the given condition. If there are multiple values of dd that satisfy the condition, you may print any of them. In case that there is no such dd, print a single integer 00.

    Examples

    input

    5
    10 0 -7 2 6

    output

    4

    input

    7
    0 0 1 -1 0 0 2

    output

    0

    Note

    In the first sample, n=5n=5, so we need at least 52=3⌈52⌉=3 positive numbers after division. If d=4d=4, the array after division is [2.5,0,1.75,0.5,1.5][2.5,0,−1.75,0.5,1.5], in which there are 33 positive numbers (namely: 2.52.5, 0.50.5, and 1.51.5).

    In the second sample, there is no valid dd, so 00 should be printed.

    题解:计算出正数和负数的个数,如果正数大于(n+1)/2的话,就是随便输出一个正数,如果负数大于(n+1)/2的话,就随便输出一个负数,否则输出0.

    #include<iostream>
    #include<cstdio>
    
    using namespace std;
    
    int main()
    {
        int n,a[1005],cnt=0,cnt2=0;
        cin>>n;
        for(int i=0;i<n;i++)
        {
            scanf("%d",a+i);
            if(a[i]>0)        //找出正数的个数
                cnt++;    
            else if(a[i]<0)        //找出负数的个数
                cnt2++;
    
        }    
        if(cnt>=(n+1)/2)
            printf("1
    ");
        else if(cnt2>=(n+1)/2)
            printf("-1
    ");
        else
            printf("0
    ");
        return 0;
    }
  • 相关阅读:
    CF1305 Ozon Tech Challenge 2020 游戏存档
    CF1310A Recommendations 题解
    CF755G PolandBall and Many Other Balls 题解
    关于后缀自动机
    具体数学学习笔记
    Flask-SQLAlchemy中解决1366报错
    常用的SQLalchemy 字段类型
    flask_model防止循环引用
    navicate远程访问ubuntu上的mysql数据库
    flask运行环境搭建(nginx+gunicorn)
  • 原文地址:https://www.cnblogs.com/buhuiflydepig/p/10638523.html
Copyright © 2011-2022 走看看