其他分享
首页 > 其他分享> > 360公司2019校招笔试题-圈地运动

360公司2019校招笔试题-圈地运动

作者:互联网

链接:https://www.nowcoder.com/questionTerminal/37554f9e45404fa785bd029e5f08280e
来源:牛客网
 

圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形~

小明喜欢圈地运动,于是他需要去小红店里面买一些木棍,期望圈出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:

1.如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来。

2.买了的木棍都必须用在圈地运动中。

那么请问小明最少买多少根木棍,才能使得木棍围成的图形是个面积大于0多边形呢?

 

输入描述:

第一行一个数n,表示木棍个数。
第二行n个数,第i个数表示第i个木棍的长度ai
1<=n<=10000
1<=ai<=10000


 

输出描述:

输出一个数,表示最少需要的木棍个数,如果无解输出-1

示例1

输入

3
6 8 10

输出

3

说明

用三根6,8,10的木棍可以组成一个直角三角形的图形。
#include<iostream>
using namespace std;
int main()
{
    int n;
    int a;
    cin>>n;
    int maxlen = 0;
    int otherlen = 0;
    if(n<3)
    {
        cout<<"-1"<<endl;
        return 0;
    }
    int cnt = 0;
    for(int i = 0; i < n; i++)
    {
        cnt++;
        cin>>a;
        if(maxlen == 0)
        {
            maxlen = a;
            continue;
        }
        if(a>maxlen)
        {
            otherlen += maxlen;
            maxlen = a;
        }else
        {
            otherlen+=a;
        }
        if(otherlen>maxlen)
        {
            cout<<cnt<<endl;
            return 0;
        }
    }
    cout<<"-1"<<endl;
 
 
    return 0;
}

 

标签:小明,int,圈地,otherlen,maxlen,2019,木棍,校招,360
来源: https://blog.csdn.net/wys5wys/article/details/99078762