首页 > 其他分享 >Codeforces Global Round 11 A. Avoiding Zero

Codeforces Global Round 11 A. Avoiding Zero

时间:2023-10-13 20:23:29浏览次数:37  
标签:11 std int Avoiding sum Global Codeforces 构造 数组

给一个大小为 \(n\) 的数组 \(a_1, a_2, \cdots, a_n\) 。你需要构造一个大小为 \(n\) 的数组 \(b\) 且满足以下条件:

  • 数组 \(b\) 是数组 \(a\) 的冲排列
  • 对于 \(\forall k =1, 2, \cdots, n\) , \(\sum_{i=1}^{k} b_i \neq 0\) 。

输出任意一组构造,或者回答不可能。

若 \(\sum_{i = 1}^{n} a_i = 0\) , \(\sum_{i=1}^{n} b_i = 0\) 恒成立。于是无法构造 \(b\) 。

否则可以构造出一个 \(b\) 。定义 \(S_{r} = \sum_{i = 1}^{n} b_i\) ,下面给出构造性证明:

  • 若 \(\sum_{i = 1}^{n} a_i > 0\) ,让 \(b\) 为 \(a\) 的非升序排序,于是 \(S(x)\) 的图像为先非降,后非升。显然最小值为 \(S_{1}\) 或 \(S_{n}\) ,且都 \(> 0\) 。
  • 若 \(\sum_{i = 1}^{n} a_i < 0\) ,让 \(b\) 为 \(a\) 的非降序排序,于是 \(S(x)\) 的图像为先非升,后非降。显然最大值为 \(S_{1}\) 或 \(S_{n}\) ,且都 \(< 0\) 。
view
#include <bits/stdc++.h>
typedef long long ll;
void solve(){
	int n; std::cin>> n;
	std::vector<ll> a(n+1);
	ll sum = 0;
	for (int i = 1; i <= n; i++) std::cin >> a[i], sum += a[i];
	if (sum == 0) std::cout << "NO\n";
	else {
		std::cout << "YES\n";
		std::sort(a.begin() + 1, a.end());
		if (sum > 0) std::reverse(a.begin() + 1, a.end());
		for (int i = 1; i <= n; i++) std::cout << a[i] << " \n"[i==n];
	}
}
int main() {
	int _ = 1; std::cin >> _;
	while (_--) {solve();}
	return 0;
}

标签:11,std,int,Avoiding,sum,Global,Codeforces,构造,数组
From: https://www.cnblogs.com/zsxuan/p/17763054.html

相关文章

  • Chrome 118 版本中的新功能
    GoogleChrome的最新版本V118正式版2023/10/10发布,以下是新版本中的相关新功能供参考。本文翻译自NewinChrome118,作者:AdrianaJara,略有删改。以下是主要内容:使用@scopecss规则在组件中指定特定样式。有两个新的媒体功能:scripting和prefers-reduced-transparenc......
  • CF1149D Abandoning Roads
    首先\(a\)边可以随便选。显然,若某条\(b\)边的两端位于同一\(a\)连通块,一定不会被我们考虑。剩下的\(b\)边一定会将两个\(a\)连通块相连。那么此时我们对于\(b\)边的约束是,位于一个环上的\(b\)边不能同时存在图中,即,我们的路径不能从当前连通块出发,经过至少一条\(b......
  • 文心一言 VS 讯飞星火 VS chatgpt (112)-- 算法导论10.2 3题
    三、用go语言,用一个单链表L实现一个队列。要求操作ENQUEUE和DEQUEUE的运行时间仍为O(1)。文心一言:在Go语言中,使用单链表实现队列的操作,包括入队(ENQUEUE)和出队(DEQUEUE),并保持操作的时间复杂度为O(1),需要利用两个指针,一个指向队头,另一个指向队尾。以下是一个简单的实现:pac......
  • lesson11:鼠标监听事件-绘点
      packagecom.zym.lesson11;importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.util.ArrayList;importjava.util.Iterator;//测试鼠标监听事件publicclassTestMouseListener{publicstaticvoidmain(String[]args){......
  • 10.11
    今天学了js事件监听 ......
  • DPDK-22.11.2 [五] 多进程
    dpdk支持多进程运行,不过要指定参数打开,如果没有设定,但开启第二个dpdk程序是会报错,告诉你相关系统资源被占用。EAL:Cannotcreatelockon'/var/run/dpdk/rte/config'.Isanotherprimaryprocessrunning?EAL:FATAL:CannotinitconfigEAL:Cannotinitconfigdpdk有两......
  • 国产耗材控制芯片推荐—LCS4110R
    耗材控制作为产品主体的配件或其他配套产品,其已成为企业获取利润的来源之一。如何确保耗材的有效使用,可以通过加密芯片来解决这一问题。加密芯片相当于是耗材的“身份证”,LCS4110R具有加解密认证功能、代码移植功能、参数保护工程,可实现耗材身份认证、寿命控制等需求。LCS4110R是以......
  • 国产耗材控制芯片推荐—LCS4110R
    耗材控制作为产品主体的配件或其他配套产品,其已成为企业获取利润的来源之一。如何确保耗材的有效使用,可以通过加密芯片来解决这一问题。加密芯片相当于是耗材的“身份证”,LCS4110R具有加解密认证功能、代码移植功能、参数保护工程,可实现耗材身份认证、寿命控制等需求。LCS4110R是......
  • Patch 12419353 - 11.2.0.2.3 GI Patch Set Update (Includes Database PSU 11.2.0.2.
    Released:July19,2011,LastUpdated:August9,2011Thisdocumentisaccurateatthetimeofrelease.ForanychangesandadditionalinformationregardingGIPSU11.2.0.2.3,seetheserelateddocumentsthatareavailableatMyOracleSupport(http://supp......
  • 研究目标识别领域相关知识(10.11~10.18)
    这周任务(到下周三汇报):会发给我资料,需要整理下面内容:1、研究什么样的问题?目标检测/识别问题随着社会的发展,公共安全成为全社会的一个共同话题,与之相辅相成的视频监控系统也得到了大量的普及。视频监控系统可以直观的再现目标场景,可作为公安侦破案件的强力辅助。在执法......