UVALive
来源:互联网 发布:黑客用linux 编辑:程序博客网 时间:2024/05/27 00:44
从大到小排序,如果当前和小于零则加,大于零则减,判断最后是否收敛于零。
#include <iostream>#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=110000;int n,v[N];struct node{ int i; ll num;}a[N];bool cmp(node a,node b){ return a.num<b.num;}int main(){ while(~scanf("%d",&n)) { for(int i=0;i<n;i++) scanf("%lld",&a[i].num),a[i].i=i; sort(a,a+n,cmp); ll sum=0; for(int i=n-1;i>=0;i--) { if(sum<=0) { sum+=a[i].num; v[a[i].i]=1; } else { sum-=a[i].num; v[a[i].i]=-1; } } if(sum==0) { printf("Yes\n"); for(int i=0;i<n-1;i++) printf("%d ",v[i]); printf("%d\n",v[n-1]); } else { printf("No\n"); } }}
阅读全文
0 0
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- UVALive
- 抓包 丢包
- 关于扩展名和文件类型
- oracle不同用户下表的查询
- 序列求和
- 【JVM】JDK命令行工具
- UVALive
- 深入理解Java虚拟机(一)Java内存
- 【暑假复习】【搜索】POJ3187:Backward Digit Sums
- 深入理解Java虚拟机(二)垃圾收集器与内存分配策略
- 使用Android Studio导入源码
- hadoop生态圈详解
- 如何搭建一个 Redis 集群
- MySQL中KEY与INDEX的区别
- 读者写者模型