• 题目描述

圈地运动,就是用很多木棍摆在地上组成一个面积大于0的多边形。小明喜欢圈地运动,于是他需要去小红店里买一些木棍,期望全出一块地来。小红想挑战一下小明,所以给小明设置了一些障碍。障碍分别是:

1)如果小明要买第i块木棍的话,他就必须把前i-1块木棍都买下来;2)买了的木棍都必须用在圈地运动中。

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

输入

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

输出

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

样例输入

3

6 8 10

样例输出

3

解题思路

n个木棍能够围成一个多边形的条件是,这n个木棍中最长的木棍长度要小于其余n-1个木棍的长度总和。所以,遍历一遍这些木棍,维护一个最长的木棍和其余木棍的总和就可以了。另外,当木棍个数小于3以及遍历完都没有符合条件的数据时,输出-1。

代码如下(AC):

#include <iostream>
#include<vector>
using namespace std;int main()
{int n;cin>>n;vector<int> v;for(int i=0;i<n;i++){int tmp;cin>>tmp;v.push_back(tmp);}if(n<3){cout<<-1<<endl;}else{int key=max(max(v[0],v[1]),v[2]);  //记录最长的木棍int sum=v[0]+v[1]+v[2]-key;  //记录除最长木棍之外的木棍长度之和if(sum>key) cout<<3<<endl;else{int i;for(i=3;i<n;i++){if(v[i]>key){sum=sum+key;key=v[i];}else{sum=sum+v[i];}if(sum>key){cout<<i+1<<endl;break;}}if(i==n) cout<<-1<<endl; //循环结束也没有找到满足条件的值}}return 0;
}

360笔试编程题-圈地运动相关推荐

  1. 2012年奇虎360校园招聘实习生笔试编程题

    2012年奇虎360校园招聘实习生笔试编程题 1.  自己实现库函数 int atoi(const char* str);  注意两点:(1). 字符串中,符号位的处理. (2).字符串中,出现非数字 ...

  2. 大厂offer?拿来吧你!网易有道笔试编程题特辑

    联系我们:有道技术团队助手:ydtech01 / 邮箱:ydtech@rd.netease.com 欢迎应届生同学们 来到2022年校招运动会 现在迎面向你们走来的 是网易有道代表队! (传送门:ht ...

  3. 字节跳动2019春招第二次笔试编程题

    字节跳动2019春招第二次笔试编程题 1.变身程序员 题目描述 输入描述 输出描述 示例 示例1 示例2 示例3 分析 参考代码 2.特征提取 题目描述 输入描述 输出描述 示例 示例1 备注 分析 ...

  4. 2020校招4399游戏开发岗笔试编程题题解部分

    2020校招4399游戏开发岗笔试编程题题解 序号四 题目描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位. 输入描述: 一 ...

  5. python算法预测风险等级_一般算法水平到底什么样子才能秒杀Bat的笔试编程题?...

    很简单,打开 LintCode 随便找一道中等难度的题,如果能很快找到思路并提交代码通过,那么BAT公司的笔试编程题基本没什么问题了.(唯一需要注意的是国内公司笔试题目一般都很长,比较考验阅读理解能力 ...

  6. 网易笔试编程题java_2017年网易校招笔试JAVA研发编程题

    为什么80%的码农都做不了架构师?>>> 尝试挑战了下网易2017校招的笔试编程题,共三题,AC第一题,第二题思考了很久勉强用一种low逼的方式完成,第三题没有完成,希望路过的ACM ...

  7. 经典笔试编程题--Java实现

    转载自  经典笔试编程题--Java实现 1.输入一个正数n,输出所有和为n的连续正数序列.  分析:设定两个指针,min指向和为n的连续正数序列的最小值,max指向和为n的连续正数序列最大值.sum ...

  8. 美团点评2017秋招笔试编程题

    美团点评2017秋招笔试编程题 1, 大富翁游戏,玩家根据骰子的点数决定走的步数,即骰子点数为1时可以走一步,点数为2时可以走两步,点数为n时可以走n步.求玩家走到第n步(n<=骰子最大点数且是 ...

  9. 2020哔哩哔哩校招后端开发笔试编程题总结

    2020哔哩哔哩校招后端开发笔试编程题总结 1.给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9) 暴力求解法: package Day4 ...

最新文章

  1. Linux sed Examples--转载
  2. 【题解】p1064 金明的预算方案
  3. 11(maven+SSH)网上商城项目实战之Freemarker 页面静态化
  4. 《趣学CCNA——路由与交换》一2.3 网络层协议概述
  5. P1525-关押罪犯【并查集】
  6. Android--RxJava2更新体验
  7. java+读取source资源_如何从JavaJAR文件中读取资源文件?
  8. visio给图片添加任意形状外框
  9. SPSS分析基础——T检验
  10. CSS 常见布局 水平垂直居中对齐
  11. 如何避免成为一个油腻的中年猥琐男
  12. 判断二极管导通例题_朝花夕拾——2018全国1卷导数压轴题原题重现
  13. 七夕节送女朋友什么礼物最好、七夕最走心的礼物清单
  14. DBGrid 各属性的设置
  15. python有趣小程序 表白-python表白小程序
  16. markdown_typora排版编辑技巧(样式嵌套/撤销/列表缩进)/表格内换行
  17. 冰点还原精灵7.0密码忘记的解决方案
  18. MAMP Pro 6 mac强大的本地服务器环境软件套装
  19. opencv学习笔记(1) TermCriteria 和 光流法特征点
  20. python调用ansys

热门文章

  1. 股市学习稳扎稳打(六)股票上龙虎榜有哪些条件
  2. 世嘉MD游戏开发【六】:矩形填充Tile图块
  3. google earth engine(GEE)如何在看某一点的经纬度、波段信息
  4. 快速傅里叶变换学习及C语言实现
  5. 客户端开发是做什么的_做程序员需要哪些技能?会开发什么软件?
  6. 另类因子:消费交易数据与股票截面收益
  7. RS示波器软件,罗德与施瓦茨示波器上位机软件NS-Scope介绍
  8. 评价win10自带输入法——微软拼音输入法
  9. 软件测试工作怎么样?转行可以干什么?
  10. Unity3D 飞碟游戏改进版