B. Nick and Array

该博客讨论了一个关于数组操作的问题,目标是通过特定操作(将数组中的任意元素ai替换为其相反数-ai-1)来最大化数组元素的乘积。提供了一种策略来找到能实现最大乘积的数组,并给出了输入输出示例以及相应的代码实现。

链接:https://codeforces.ml/contest/1180/problem/B

Nick had received an awesome array of integers a=[a1,a2,…,an]a=[a1,a2,…,an] as a gift for his 55 birthday from his mother. He was already going to explore its various properties but after unpacking he was disappointed a lot because the product a1⋅a2⋅…ana1⋅a2⋅…an of its elements seemed to him not large enough.

He was ready to throw out the array, but his mother reassured him. She told him, that array would not be spoiled after the following operation: choose any index ii (1≤i≤n1≤i≤n) and do ai:=−ai−1ai:=−ai−1.

For example, he can change array [3,−1,−4,1][3,−1,−4,1] to an array [−4,−1,3,1][−4,−1,3,1] after applying this operation to elements with indices i=1i=1and i=3i=3.

Kolya had immediately understood that sometimes it's possible to increase the product of integers of the array a lot. Now he has decided that he wants to get an array with the maximal possible product of integers using only this operation with its elements (possibly zero, one or more times, as many as he wants), it is not forbidden to do this operation several times for the same index.

Help Kolya and print the array with the maximal possible product of elements a1⋅a2⋅…ana1⋅a2⋅…an which can be received using only this operation in some order.

If there are multiple answers, print any of them.

Input

The first line contains integer nn (1≤n≤1051≤n≤105) — number of integers in the array.

The second line contains nn integers a1,a2,…,ana1,a2,…,an (−106≤ai≤106−106≤ai≤106) — elements of the array

Output

Print nn numbers — elements of the array with the maximal possible product of elements which can be received using only this operation in some order from the given array.

If there are multiple answers, print any of them.

Examples

input

Copy

4
2 2 2 2

output

Copy

-3 -3 -3 -3 

input

Copy

1
0

output

Copy

0 

input

Copy

3
-3 -3 2

output

Copy

-3 -3 2 

代码:

#include<bits/stdc++.h>
using namespace std;
long long n,m,t,k,l,ans,flag,a1,b1,c1,s;
struct node{
	int x;
	int id;
}a[10000001];
bool cmp(node p,node q)
{
	return p.x<q.x;
}
bool bmp(node p,node q)
{
	return p.id<q.id;
}
int main()
{
	 cin>>n;
	 s=0;
	 for(int i=1;i<=n;i++)
	 {
	 	cin>>a[i].x;
	 	a[i].id=i;
	 	if(a[i].x<0)
	 	a[i].x=-a[i].x-1;
	 }
	 sort(a+1,a+1+n,cmp);
	 if(n%2==1)
	 k=n-1;
	 else
	 k=n;
	 for(int i=1;i<=k;i++)
	 {
	 	a[i].x=-a[i].x-1;
	 }
	 sort(a+1,a+1+n,bmp);
	 for(int i=1;i<=n;i++)
	 cout<<a[i].x<<" ";
	 
}

 

2. (单选题) MyBatis 中的 Mapper 接口是做什么用的? A 定义数据库表结构 B 定义 SQL 语句 C 定义事务管理 D 定义业务逻辑 3. (单选题) 在 MyBatis 中,哪个标签用于定义一条查询语句? A <select> B <insert> C <update> D <delete> 4. (单选题) MyBatis 支持的动态 SQL 元素不包括以下哪个? A <if> B <choose> C <when> D <for> 5. (单选题) MyBatis 中,哪个配置元素用于定义数据库连接信息? A <dataSource> B <transactionManager> C <environments> D <mappers> 6. (单选题) MyBatis 中,哪个配置元素用于定义结果映射? A <resultMap> B <parameterMap> C <sqlMap> D <mapper> 7. (单选题) MyBatis 中,哪个配置元素用于定义多个数据库环境? A <environments> B <dataSource> C <mappers> D <transactionManager> 8. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 映射文件的位置? A <mappers> B <environments> C <dataSource> D <transactionManager> 9. (单选题) MyBatis 支持的结果集类型不包括以下哪个? A list B map C xml D array 10. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 插件? A <plugins> B <environments> C <dataSource> D <mappers> 11. (单选题) MyBatis 支持的日志实现不包括以下哪个? A SLF4J B LOG4J C LOG4J2 D JULL 12. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 的日志实现? A <settings> B <environments> C <dataSource> D <logImpl> 13. (单选题) MyBatis 中,哪个配置元素用于定义 MyBatis 属性文件的位置? A <properties> B <propertyFiles> C <configFile> D <settings> 14. (单选题) PageHelper 分页插件是通过什么机制来实现分页的? A 拦截器(Interceptor) B AOP C JDBC D XML 15. (单选题) MyBatisX 是一款基于哪个IDE的快速开发插件? A Eclipse B IntelliJ IDEA C NetBeans D Visual Studio Code 16. (单选题) 在 MyBatis 中,使用分页插件后,以下哪个操作会导致分页不生效? A 在查询之前调用 PageHelper.startPage(pageNum, pageSize); B 在查询之后调用 PageHelper.startPage(pageNum, pageSize); C 使用 PageInfo 对象封装查询结果 D 使用 Page 对象封装查询结果 17. (单选题) MyBatisX 插件的安装步骤中,以下哪个步骤不是必需的? A 在 IDEA 中安装 MybatisX 插件 B 在 pom.xml 文件中引入 MyBatis-Plus 依赖 C 在 application.yml 中配置数据库连接 D 在数据库中创建视图 18. (单选题) 在MyBatis的动态SQL中,<if> 标签的作用是什么? A 仅当指定条件为真时执行内部的SQL语句 B 无条件地执行内部的SQL语句 C 循环执行内部的SQL语句 D 将多个SQL语句合并为一个 19. (单选题) MyBatis中 <foreach> 标签的 collection 属性是用来遍历哪个类型的参数? A 单个值 B 数组 C 集合 D 映射 20. (单选题) 在MyBatis中,<set> 标签用于构建哪个SQL语句的部分? A SELECT B INSERT C UPDATE D DELETE 21. (单选题) 在MyBatis中,如果要实现多对一查询,通常使用哪个标签来定义结果映射? A <collection> B <association> C <result> D <sql> 22. (单选题) 当使用MyBatis进行一对多查询时,以下哪个标签用于定义结果映射中的集合属性? A <association> B <collection> C <result> D <sql> 23. (单选题) 在MyBatis中,如果要通过嵌套查询实现多表关联查询,通常需要在哪个标签中定义子查询? A <association> B <collection> C <resultMap> D <select> 24. (单选题) 在MyBatis中,如果要实现分页关联查询,通常会使用哪个插件来辅助实现? A PageHelper B MyBatisX C MyBatis-Spring D MyBatis-Plus 25. (单选题) MyBatis 允许在 XML 映射文件中使用哪种标签来包含其他 SQL 片段? A <include> B <import> C <file> D <sql>
10-18
WITH FirstOTRPJM AS (SELECT HT.PROC_INST_ID_, HT.ASSIGNEE_, HT.NAME_, ROW_NUMBER() OVER (PARTITION BY HT.PROC_INST_ID_ ORDER BY HT.END_TIME_ ASC NULLS LAST) AS RN FROM ACT_HI_TASKINST HT WHERE HT.NAME_ = 'OTR PJM') SELECT DISTINCT B.MASTER_NO AS PACKAGE_NO, C.VERSION AS HEADER_VERSION, B.QUOTE_NO AS QUOTE_NO, B.CONTRACT_NO AS CONTRACT_NO, '' as OC_VERSION, CASE WHEN C.CHANNEL = 'Direct' THEN 'No' ELSE 'Yes' END AS INVOLVE_DEALER, C.CUSTOMER_PROVINCE_NAME AS CUSTOMER_PROVINCE, C.BUYER_TYPE_NAME AS CUSTOMER_TYPE, B.END_USER_NAME AS END_USER_NAME, B.END_USER_PROVINCE AS END_USER_PROVINCE, B.SALES_FUNCTION AS SALES_REGION, B.SVC_SALES AS SVC_SALES, B.SALES_REP_SSO AS CREATER_SSO, B.TYPE AS TYPE, B.SEGMENTATION AS SEGMENTATION, B.OFFERING AS OFFERING, B.IB_MODALITY AS IB_MODALITY, SYS.SYSTEM_ID AS SYSTEM_ID, CG.GROUP_NAME AS GROUP_NAME, SYS_C.SYS_COUNT AS IB_QTY, CGC.CATALOG_NO AS CATALOG_NAME, CGC.CATALOG_NAME AS DESCRIPTION, CGC.QTY AS Qty, CGC.QTY AS TOTAL_QTY, B.PL AS P_L, U1.NICK_NAME AS PJM_NAME, U1.USER_NAME AS PJM_SSO, B.START_TIME AS START_DATE, B.END_TIME AS END_DATE, B.CONTRACT_PRICE AS CONTRACT_PRICE, TO_CHAR(DICT.DICT_LABEL) AS CURRENCY, ROUND(((TO_DATE(B.end_time, 'YYYY-MM-DD') - TO_DATE(B.start_time, 'YYYY-MM-DD') +1)/365), 5) AS SERVICE_YEAR, C.PAYMENT_CYCLE AS PAYMENT_CYCLE, (SELECT CREATE_TIME FROM SYS_PROCESS_LOG WHERE MODULE_NO = R.MASTER_NO AND VERSION = R.VERSION AND RECORD_TYPE = '1' AND ORDER_STATUS = 'ORDER_LOCKED' ORDER BY CREATE_TIME FETCH NEXT 1 ROW ONLY) AS ORDER_LOCKED_DATE, R.ORDER_STATUS, (SELECT CREATE_TIME FROM SYS_PROCESS_LOG WHERE MODULE_NO = R.MASTER_NO AND VERSION = R.VERSION AND RECORD_TYPE = '1' AND ORDER_STATUS = 'ORDER_BOOKED' ORDER BY CREATE_TIME FETCH NEXT 1 ROW ONLY) AS ORDER_BOOKED_DATE, '' AS OC_STATUS , FL.START_TIME_ FROM TB_SVCEPOP_BASIC_INFO B INNER JOIN SYS_DYNAMIC_FORM_RECORD R ON B.RECORD_NO = R.MASTER_NO AND B.VERSION = R.VERSION AND R.DEL_FLAG = '0' INNER JOIN TB_SVCEPOP_CUSTOMER_INFO C ON C.RECORD_NO = B.MASTER_NO AND C.VERSION = B.VERSION AND C.DEL_FLAG = '0' LEFT JOIN SYS_DICT_DATA DICT ON DICT.DICT_TYPE = 'svc_basic_info_currency' AND DICT.STATUS = 0 AND B.CURRENCY = DICT.DICT_VALUE LEFT JOIN SYS_DYNAMIC_FORM_ITEM ITEM1 ON ITEM1.FORM_ID = R.MODULE_ID AND ITEM1.COMPONENT_ID = 'component11' AND ITEM1.DEL_FLAG = 0 LEFT JOIN TB_BUSINESS_TO_FLOW FLOW1 ON B.RECORD_NO = FLOW1.NO AND B.VERSION = FLOW1.VERSION AND FLOW1.TYPE = ITEM1.FORM_ITEM_ID AND FLOW1.STATUS = '1' LEFT JOIN ACT_HI_PROCINST HP1 ON HP1.BUSINESS_KEY_ = FLOW1.BUSINESS_ID LEFT JOIN FirstOTRPJM HT1 ON HT1.PROC_INST_ID_ = HP1.PROC_INST_ID_ AND HT1.RN = 1 LEFT JOIN SYS_USER U1 ON HT1.ASSIGNEE_ = U1.USER_ID AND U1.DEL_FLAG = '0' LEFT JOIN TB_SVCEPOP_CONFIGURATION_DATA D ON D.RECORD_NO = B.RECORD_NO AND D.VERSION = B.VERSION AND B.DEL_FLAG = '0' LEFT JOIN TB_SVCEPOP_CONFIGURATION_GROUP CG ON CG.CONFIGURATION_ID = D.ID AND CG.DEL_FLAG = '0' LEFT JOIN TB_SVCEPOP_CONFIGURATION_GROUP_CATALOG CGC ON CGC.CONFIGURATION_GROUP_ID = CG.ID AND CGC.IS_SELECTED = '0' LEFT JOIN ( SELECT SD.RECORD_NO, SD.VERSION, SCG.SYSTEM_ID, SCG.ASSET_NUM FROM TB_SVCEPOP_CONFIGURATION_DATA SD JOIN TB_SVCEPOP_CONFIGURATION_GROUP SCG ON SD.ID = SCG.CONFIGURATION_ID WHERE SD.DEL_FLAG = '0' UNION SELECT BAISC_NO, VERSION, SYSTEM_ID_V AS SYSTEM_ID, ASSET_NUM FROM TB_SVCEPOP_BASIC_SYSTEM WHERE DEL_FLAG = '0' ) SYS ON B.RECORD_NO = SYS.RECORD_NO AND B.VERSION = SYS.VERSION AND SYS.ASSET_NUM = CG.ASSET_NUM LEFT JOIN ( SELECT SCG.CONFIGURATION_ID, SD.RECORD_NO, SD.VERSION, SCG.GROUP_ID, count(SCG.SYSTEM_ID) AS SYS_COUNT FROM TB_SVCEPOP_CONFIGURATION_DATA SD JOIN TB_SVCEPOP_CONFIGURATION_GROUP SCG ON SD.ID = SCG.CONFIGURATION_ID WHERE SD.DEL_FLAG = '0' GROUP BY SCG.CONFIGURATION_ID, SD.RECORD_NO, SD.VERSION, SCG.GROUP_ID ) SYS_C ON B.RECORD_NO = SYS_C.RECORD_NO AND B.VERSION = SYS_C.VERSION JOIN ( SELECT F.NO, MIN(t.START_TIME_) AS START_TIME_ FROM ACT_HI_TASKINST t LEFT JOIN ACT_HI_COMMENT c ON t.ID_ = c.TASK_ID_ INNER JOIN ACT_HI_PROCINST p ON t.PROC_INST_ID_ = p.ID_ JOIN TB_BUSINESS_TO_FLOW F ON F.BUSINESS_ID = P.BUSINESS_KEY_ GROUP BY F.NO ORDER BY START_TIME_ ASC ) FL ON FL.NO = B.QUOTE_NO WHERE R.RECORD_STATUS != 'DRAFT' AND B.DEL_FLAG = '0' 这是原sql 怎么优化一下
最新发布
01-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值