Zero Array---思维题
2024-09-05 10:16:54
B. Zero Array
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
You are given an array a1,a2,…,ana1,a2,…,an.
In one operation you can choose two elements aiai and ajaj (i≠ji≠j) and decrease each of them by one.
You need to check whether it is possible to make all the elements equal to zero or not.
Input
The first line contains a single integer nn (2≤n≤1052≤n≤105) — the size of the array.
The second line contains nn integers a1,a2,…,ana1,a2,…,an (1≤ai≤1091≤ai≤109) — the elements of the array.
Output
Print "YES" if it is possible to make all elements zero, otherwise print "NO".
Examples
input
Copy
4
1 1 2 2
output
Copy
YES
input
Copy
6
1 2 3 4 5 6
output
Copy
NO
Note
In the first example, you can make all elements equal to zero in 33 operations:
- Decrease a1a1 and a2a2,
- Decrease a3a3 and a4a4,
- Decrease a3a3 and a4a4
In the second example, one can show that it is impossible to make all elements equal to zero.
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<vector>
#include<cmath>
#include<string>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
ll num[100001],n;
//priority_queue<ll,vector<ll>,less<ll> > p;
int main(){
while(~scanf("%lld",&n)){
ll sum=0,max_k=-1;
for(ll i=1;i<=n;i++){
scanf("%lld",&num[i]);
sum+=num[i];
max_k=max(max_k,num[i]);
}
//如果总和不是偶数,或者最大值比总和的一半大,不能实现
if(sum%2==1||max_k>sum/2){
printf("NO\n");
continue;
}
else {
printf("YES\n");
continue;
}
}
return 0;
}
// /\ | / |**、
// / \ | / | \
// / \ |/ | / _____ ____ | /
// /------\ |\ |__/ / \ \ /\ / / \ | /
// / \ | \ | / \ \ / \ / /______\ |/
// / \ | \ | \ / \ / \ / \ |
// / \ | \ | \_____/ \/ \/ \_____ |
/**
* ┏┓ ┏┓
* ┏┛┗━━━━━━━┛┗━━━┓
* ┃ ┃
* ┃ ━ ┃
* ┃ > < ┃
* ┃ ┃
* ┃... ⌒ ... ┃
* ┃ ┃
* ┗━┓ ┏━┛
* ┃ ┃ Code is far away from bug with the animal protecting
* ┃ ┃ 神兽保佑,代码无bug
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┃
* ┃ ┗━━━┓
* ┃ ┣┓
* ┃ ┏┛
* ┗┓┓┏━┳┓┏┛
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*/
// warm heart, wagging tail,and a smile just for you!
//
// _ooOoo_
// o8888888o
// 88" . "88
// (| -_- |)
// O\ = /O
// ____/`---'\____
// .' \| |// `.
// / \||| : |||// \
// / _||||| -:- |||||- \
// | | \\ - /// | |
// | \_| ''\---/'' | |
// \ .-\__ `-` ___/-. /
// ___`. .' /--.--\ `. . __
// ."" '< `.___\_<|>_/___.' >'"".
// | | : `- \`.;`\ _ /`;.`/ - ` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// ======`-.____`-.___\_____/___.-`____.-'======
// `=---='
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
//
最新文章
- 年终巨献 史上最全 ——LINQ to SQL语句
- Jackson 通过自定义注解来控制json key的格式
- 似魔鬼的 『 document.write 』
- LinkIssue: Error &#39;LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or cor
- 创建catalog数据库
- 自定义SharePoint 2013 元数据选择控件
- UVA1635 Irrelevant Elements(唯一分解定理 + 组合数递推)
- iOS开发之——从零开始完成页面切换形变动画
- background-position 用法详细介绍
- Knockout.Js官网学习(html绑定、css绑定)
- POJ1651:Multiplication Puzzle(区间DP)
- 汽车总线obd模拟器,obd仿真器,ecu模拟器,obd开发测试工具,可以模拟ecu中的obd协议 MRD-5050
- js 获取当前日期所在周的周一
- Solr6.5.0配置中文分词器配置
- 2018/1/27 Zookeeper实现分布式锁
- Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例
- Tournament ZOJ - 4063 (青岛区域赛 F 打表)
- Chrome扩展程序——TabCopy:一键复制网页标题和网址
- ubuntu中给python3安装opencv
- centos7下安装docker(8.2进入容器)
热门文章
- 初学mysql 如何删除数据库 如何安装mysql
- docker部署项目: centos+python+redis+mysql+uwsgi+nginx
- premiere pro 2019 mac 破解
- ew做代理 进一步内网渗透
- Java中可变参数
- 使用io/ioutil进行读写文件
- 使用fui(Find Unused Imports)扫描工程中不用的类
- P2341 [HAOI2006]受欢迎的牛(更完)
- Python - 二叉树, 堆, headq 模块
- Vue.js父子组件如何传值 通俗易懂