CF 549G swap(前-1,后+1),问是否能变成递增序列(灵活题)

【信息科学与工程学】计算机科学与自动化——第三十五篇 调度理论和调度算法01——资源调度算法 算法逻辑 阅读详情

Do you like summer? Residents of Berland do. They especially love eating ice cream in the hot summer. So this summer day a large queue of n Berland residents lined up in front of the ice cream stall. We know that each of them has a certain amount of berland dollars with them. The residents of Berland are nice people, so each person agrees to swap places with the person right behind him for just 1 dollar. More formally, if person astands just behind person b, then person a can pay person b 1 dollar, then a and b get swapped. Of course, if person a has zero dollars, he can not swap places with person b.

Residents of Berland are strange people. In particular, they get upset when there is someone with a strictly smaller sum of money in the line in front of them.

Can you help the residents of Berland form such order in the line so that they were all happy? A happy resident is the one who stands first in the line or the one in front of who another resident stands with not less number of dollars. Note that the people of Berland are people of honor and they agree to swap places only in the manner described above.

Input

The first line contains integer n (1 ≤ n ≤ 200 000) — the number of residents who stand in the line.

The second line contains n space-separated integers ai (0 ≤ ai ≤ 109), where ai is the number of Berland dollars of a man standing on the i-th position in the line. The positions are numbered starting from the end of the line.

Output

If it is impossible to make all the residents happy, print ":(" without the quotes. Otherwise, print in the single line n space-separated integers, the i-th of them must be equal to the number of money of the person on position i in the new line. If there are multiple answers, print any of them.

Sample test(s)
input
2
11 8
output
9 10 
input
5
10 9 7 10 6
output
:(
input
3
12 3 3
output
4 4 10 
Note

In the first sample two residents should swap places, after that the first resident has 10 dollars and he is at the head of the line and the second resident will have 9 coins and he will be at the end of the line.

In the second sample it is impossible to achieve the desired result.

In the third sample the first person can swap with the second one, then they will have the following numbers of dollars: 4 11 3, then the second person (in the new line) swaps with the third one, and the resulting numbers of dollars will equal to: 4 4 10. In this line everybody will be happy.

http://codeforces.com/problemset/problem/549/G

这题我是用能量守恒的方法考虑的。请先看一眼代码——开始的时候依次加了i,最后依次减去i,也就是说,数组的总和还是不变的。+i是为了使中间过程形成递增。

x[i]==x[i-1],假设可以,那么下面输出序列就是 x[i-1]-(i-1) > x[i]-i ,明显不可以。

#include <set>
#include <map>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
#include <vector>
#include <cstdlib>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int x[200010];
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;++i){
		cin>>x[i];
		x[i]+=i;
	}
	sort(x,x+n);
	for(int i=1;i<n;++i){
		if(x[i]==x[i-1]){
			cout<<":(";
			return 0;
		}
	}
	for(int i=0;i<n;++i)
		cout<<x[i]-i<<" ";
	return 0;
}


【信息科学与工程学】【数据科学】数据科学领域 第六篇 算法设计 01 算法设计 阅读详情

相关推荐

【信息科学与工程学】【物理/化学和工程技术】第六十八篇 密度/介质/刚度/强度/散射/投影矩阵01

编码一级领域二级大类三级子类/具体行为说明/举例核心干系人示例1法律领域刑事违法暴力侵害逻辑非法侵害他人生命、健康、自由,破坏公共安全。犯罪嫌疑人、被害人、公检法机关2法律领域刑事违法财产侵占逻辑以非法占有为目的,侵害公私财产所有权。犯罪嫌疑人、财产权利人、公检法机关3法律领域刑事违法破坏秩序逻辑挑战国家法律确立的社会、经济管理秩序。犯罪嫌疑人、国家/社会、监管部门4法律领域刑事违法职务滥用逻辑滥用职权或玩忽职守,损害国家或公民权益。职务犯罪人、所在单位、监察司法机关5法律领域刑事违法具体行为:故意杀人​非

weixin_49199313的博客 1159

Codeforces 549G. Happy Line 贪心

很有意思的贪心: Let's reformulate the condition in terms of a certain height the towers, which will be on the stairs. Then an appropriate amount of money of a person in the queue is equal to the hei

码代码的猿猿 2383

【财务领域】第五十五篇 企业金融运作、账务操作及运作、会计操作及运作、税务操作和运作、资本运作、账期管理01

编号类型领域行业企业性质企业类型问题账款和账务和税-利润管理的数学方程式列表及参数列表及参数的数值范围关联知识和法律法规和行业标准规定1财务管理账款管理通用通用通用应收账款周转率计算方程式:应收账款周转率 = 赊销收入净额 / 平均应收账款余额 参数:赊销收入净额(≥0,单位万元),平均应收账款余额(≥0,单位万元) 数值范围:周转率通常介于3~30之间,视行业而定《企业会计准则第14号——收入》;《企业财务通则》2财务管理账务处理通用通用通用流动比率计算方程式:流动比率 = 流动资产 / 流动

weixin_49199313的博客 288

CF 549G排序,构造

题目链接:http://codeforces.com/problemset/problem/549/G 思路:可以将每个人的金钱看作是一个一个的方块,金钱分可分配金钱和不可分配金钱,不可分配金钱类似台阶。 那么对于相邻两个人的交换,就相当于可分配金钱的方块在不可分配的金钱的方块上移动。那么对于最后的方案,只要将所有的可分配的金钱从小到大排序,然后检查能否组成非递减的金钱

qwe2434127的专栏 509

ROS基础(一)——命令行代码(以小乌龟程序为例)

ROS学习(一)——命令行代码(以小乌龟程序为例)1 基础命令行语句1.1 roscore1.2 rqt_graph(显示系统计算图)1.3 rosnode(显示所有节点相关信息)1.4 rostopic(和话题相关)2 服务类型指令rosservice同时存在两只海龟3 指令记录 1 基础命令行语句 从大二四旋翼无人机编队后就没再接触过ROS了,最近由于科研任务需要重新捡起来,打算系统学一下!学习过程参考古月居老师的视频,有兴趣的同学可以去[BliBli]学习。 学习平台:Ubuntu 18.04 硬件

北理自动化小白 6267

SPSS实战:5步搞定多指标联合诊断的ROC曲线分析(附Logistic回归教程)

本文详细介绍了如何使用SPSS软件进行多指标联合诊断的ROC曲线分析。通过5个实战步骤,从数据准备、二元Logistic回归建模生成综合预测概率,到绘制并比较单指标与联合模型的ROC曲线,帮助临床研究者有效整合多个诊断指标,提升模型判别能力(AUC),实现诊断效能的优化。

mqtt6iot的博客 1422

codeforces #549G Happy Line

题意:  给你一个序列  ,让后可以进行改动 改动为  前者减一后者加一, 然后前后交换,问是否可以改变为非递减序列 题解:  改动规则很简单,  要后移 则权值加一,前进则权值减一,可以发现无论如何移动 每个点的权值加上下标都是不变的。 所以进行一下处理,排序,如果有权值加上下标相等的,则无法改变为非递减序列 代码:、 #include #include #include #i

q651111937的专栏 824

Vue3 - Arco Design Vue 表格组件 table 隐藏鼠标移入时 hover 高亮背景色,el-table 组件去除鼠标悬停在表格行的 hover 高亮效果(改变鼠标移入时的背景色)

vue3,arcodesignvue,arcodesign,表格,a-table,hover,表格hover的class类名是什么,class,hover,在arcodesignvue项目中,表格组件如何去掉鼠标移入时的hover效果,vue3arco.design表格组件修改鼠标移入行的背景颜色,table表格,取消表格行row移入高亮效果,去掉鼠标移入行时的hover效果,取消a-table的hover状态,取消高亮显示,隐藏表格鼠标hover效果,去除鼠标触摸变色效果,如何取消arco表

🏆 前端领域优质创作者 3773

CodeForces - 549G Happy Line

Solution 听老师说是一道经典贪心。(当然我是不会的) 你可以发现,对于每个数,它的值与它的下标之和是不变的。那么要保证单调不下降,一定要保证和是单调递增的。可以把它们加起来再排个序。 那么不合法就只有两种情况: 相邻两数新值相等。 新值减去下标小于 000。 Code #include <cstdio> #include <algorithm> using namespace std; const int N = 2e5 + 5; int n, a[N]; int

Oxide‘s Blog 253

基于STM32的智能鱼缸设计

为了缓解学习、生活、工作带来的压力,提升生活品质,许多人喜欢在家中、办公室等场所养鱼。为节省鱼友时间、劳力、增加养鱼乐趣;为此,本文基于STM32单片机设计了一款智能鱼缸。该鱼缸可以实现水温检测、水质检测、自动或手动换水、氛围灯灯光变换和自动或手动喂食等功能为一体的控制系统,可通过控制键进行一键控制。...

1万+

仿真学习系列(三十):Sigrity设计文件(Altium Designer和Allegro)导入

很多刚接触 Sigrity 的工程师都会产生疑问:Sigrity 功能这么多,是不是门槛很高?我能学得会吗? 其实,Sigrity 的核心并不在“操作难”,而是在“理解仿真背后的机理”。一旦掌握基本流程,你会发现它并没有想象中那么复杂,反而能大大提升你的高速设计能力。本节内容,就是从最简单的一步开始 —— 把你的设计文件正确导入 Sigrity。

案例文章,高速信号 524

[codeforces 549]G. Happy Line

[codeforces 549]G. Happy Line 试题描述 Do you like summer? Residents of Berland do. They especially love eating ice cream in the hot summer. So this summer day a large queue ofnBerland residents lin...

weixin_30768661的博客 187

Windows10下安装VMware16虚拟机

由于本人系统为Windows 10 家庭中文版,无法安装Linux子系统WSL,虽然网上也有强制安装的方法,但为保险起见,还是把之前的VMware虚拟机重新进行安装,并浅浅记录一下安装过程。

沉香best的博客 864

【CF 549G Happy Line】排序

题目链接:http://codeforces.com/problemset/problem/549/G 题意:给定一个n个元素的整数序列a[], 任意时刻对于任一对相邻元素a[i-1]、 a[i],若a[i-1] < a[i] 则要依次执行如下两个操作:   1. a[i-1]--, a[i]++;   2. 交换a[i-1]和a[i]的位置。 经...

weixin_34337265的博客 173

PostgreSQL 实战:行级安全策略(RLS)详解

PostgreSQL的行级安全(RLS)机制实现了细粒度的数据访问控制,通过动态过滤行数据满足多租户隔离、隐私保护等需求。本文系统介绍了RLS的核心原理、配置方法及实践建议:1) 启用RLS后需定义策略,通过USING和WITH CHECK条件控制访问;2) 适用于SaaS、医疗金融等场景,但需注意COPY命令、外键等特殊情况;3) 建议配合会话变量、索引优化和文档化策略使用。文章还提供了多租户隔离等实战案例,并分析了RLS对查询性能的影响及优化方案。RLS将安全控制下沉至数据库层,显著提升应用安全性和可维

数据知道的博客 3153

6、深入解析Microsoft 365核心服务对比与迁移策略

本文深入解析了Microsoft 365的核心服务,包括身份和设备管理、现代设备配置体验、Exchange和SharePoint的迁移策略以及Microsoft Teams的协作功能。同时探讨了迁移过程中需要考虑的安全控制措施,为组织规划和实施云迁移项目提供了全面的指导和建议。

k8s6orchestrator的博客 107

codeforces 549G G. Happy Line(贪心)

题目链接: 点击打开链接 题目大意: 给出一些人,他们有一定数量的钱,可以通过给前面的人1元换位置,问最后能够保证前面的人一定比后面的人有钱 题目分析: 我们假设两个人a和b,a,b的钱分别是x,y元,a,b的初始坐标为i1,j1;末位坐标为i2,j2; 那么如果i2 那么x-(i2-i1) =>x-i2+i1 =>x+i1 因为i2-j2 所以x1+i1 所以按

llin-黎辰 1011

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

CF549G Happy Line

传送门 解题思路 题意大概就是给你个数列,你可以随意交换i,i+1,交换后位于第i+1位的数字+1,位于第i位的数字-1,问最终能否形成一个不下降序列并输出。设初始数列中两个位置x,y最终交换后的位置为u,v(u 代码 #include<iostream> #include<cstdio> #include&l...

weixin_30596165的博客 154

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Codeforces 549G Happy Line [贪心] [数学]

G. Happy Line time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outputDo you like summer? Residents of Berland do. They especially love eating ic

C'est la vie. 489

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

CF549G Happy Line题解

题目大意 给定一个长为 n 的序列 ai,你可以执行任意次操作,每次操作可以交换 两个相邻位置 (i, i + 1) 上的数,且交换后位置上的数变为 (ai+1 + 1, ai − 1),问是否能通过任意次操作使得 ai 不降,若有解则给出 最终的 ai 分析 这道题用数学公式来证明贪心,设原位置(x,y)现在位置为(u,v)且u #include&lt;bits/stdc++.h&gt;...

一个AFO的蒟蒻 417

贪心——Happy Line (CodeForces 549G)

题目链接: http://codeforces.com/problemset/problem/549/G 分析:数据范围很大,n为200000,ai为10^9,所以相直接模拟做肯定会TLE(半小时成功T了QAQ) 。 以下转载自 (http://blog.youkuaiyun.com/qq_24451605/article/details/46586533) 题解: 我们假设两个人a和b,a,b的钱分别是

FeBr2的博客 513

[CF549G]Happy Line

差一点……差一点!

七代目鸽影 235

【题解】CF549G:Happy Line

原题传送门 官方题解没看懂,我说说我自己的想法。 想到排序,原数列直接sortsortsort满足时间复杂度,那么如何sort是正确的? 首先确定这个sort有何意义,就是我们想把原数列中的每个数移到它正确的位置上 那么排序怎样是是意义的?是不是原来两个数经过排序后面那个数到了前面那个数的前面 性质:若ai=ai+1+1a_i=a_{i+1}+1ai​=ai+1​+1,那么无解,因为操作之后依然是...

ModestCoder_的博客 402

[贪心专题]CF549G,CF351E,CF226D,CF1276C,CF1148E,CF798D

左贪贪,右贪贪,AC在中间

499

CF605A Sorting Railway Cars

传送门 题目大意 给出一个 1 到 n 的排列,每次操作可以将某个位置的数字移动到最前面或最后面,求将排列从小到大排序的最小操作次数 如:4 1 2 5 3 操作1:将5和3换一下变成4 1 2 3 5 操作2:将1 2 3和 4换一下变成 1 2 3 4 5 在此后即完成要求。所以最小操作次数为2。 输入: 第一行 为长度 nnn ...

weixin_30713953的博客 161
上一篇: 【codechef】括号匹配,求子串最大值(灵活题)
下一篇: 矩阵链乘法,添加括号
ccyy-
博客等级 码龄12年 31粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值