题目链接:https://abc081.contest.atcoder.jp/tasks/arc086_b

题目大意:有n个数,最多可以执行2*n次操作,每次可以选择将ai加到aj上,最终使得该序列满足a1<=a2<=a3....<=an。求操作过程,答案不唯一。

解题思路:我们分三种情况讨论:

     ①a1~an都大于等于0,那么只要从左往右使a2+=a1,a3+=a2,.....an+=an-1.总共n-1次操作就能保证a1<=a2<=a3....<=an.

     ②a1~an都小于等于0,那么只要从右往左使an-1+=an,.....a2+=a3,a1+=a2.总共n-1次操作就能保证a1<=a2<=a3....<=an.

     ③a1~an中有正数也有负数,取最小值MIN和最大值MAX,若abs(MAX)>=abs(MIN),就令a1~an都加上MAX,n次操作就可以得到情况①,总计2*n-1次操作。

     若abs(MAX)<abs(MIN),就令a1~an都加上MIN,n次操作就可以得到情况②,总计2*n-1次操作。

     总结一下,我们只要根据abs(MAX)和abs(MIN)的大小执行2*n-1次操作,就一定可以得到满足条件的序列。

代码:

 #include<cstdio>
#include<cmath>
#include<cctype>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<set>
#include<map>
#include<stack>
#include<string>
#define INF 0x3f3f3f3f
#define LC(a) (a<<1)
#define RC(a) (a<<1|1)
#define MID(a,b) ((a+b)>>1)
#define fin(name) freopen(name,"r",stdin)
#define fout(name) freopen(name,"w",stdout)
#define CLR(arr,val) memset(arr,val,sizeof(arr))
#define FOR(i,start,end) for(int i=start;i<=end;i++)
#define FAST_IO ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
typedef long long LL;
const int N=1e3+; int a[N]; int main(){
int n,ma=,mi=;
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]<a[mi])
mi=i;
if(a[i]>a[ma])
ma=i;
}
printf("%d\n",*n-);
if(abs(a[ma])>=abs(a[mi])){
for(int i=;i<=n;i++){
printf("%d %d\n",ma,i);
}
for(int i=;i<=n;i++){
printf("%d %d\n",i-,i);
}
}
else{
for(int i=;i<=n;i++){
printf("%d %d\n",mi,i);
}
for(int i=n-;i>=;i--){
printf("%d %d\n",i+,i);
}
}
return ;
}

最新文章

  1. 用极简方式实现新浪新版本特性展示效果--view的图片轮播
  2. thinkphp中volist标签
  3. 服务器端高性能的IO模型 转自酷勤网
  4. [工作中的设计模式]策略模式stategy
  5. PHP 表单添加隐藏 Token 阻止外部提交
  6. 【Java安装】Centos6.8 安装Java1.6
  7. ionic 不同view的數據交互
  8. BZOJ 1756: Vijos1083 小白逛公园
  9. tomcat加入系统服务+开机自启
  10. springboot~mockMvc和asciidoctor生成基于TDD的API文档
  11. 关于pandas 调用mongodb出Memory error错误
  12. Windows 10 RS4 无法完全关闭Hyper-V导致Virtual Box 虚拟机无法启动
  13. Python Day 11
  14. oracle表空间扩容方法
  15. Effective C++(第三版)笔记 ---- 第一部分让自己习惯C++
  16. JustOj 1036: 习题6.11 迭代法求平方根
  17. 在ToolStrip中加入具有更好体验性的DateTimePicker
  18. ip地址、子网掩码、DNS的关系与区别
  19. es6 入坑笔记(五)
  20. 常用模块random,time,os,sys,序列化模块

热门文章

  1. 2018九省联考(SHOI2018)
  2. 洛谷p1017 进制转换(2000noip提高组)
  3. WinForm二三事(三)Control.Invoke&amp;Control.BeginInvoke
  4. Codeforces Round #305 (Div. 2) D 维护单调栈
  5. angular 有关侦测组件变化的 ChangeDetectorRef 对象
  6. win7 64位环境下配置汇编环境和程序设计
  7. bzoj 1528 [POI2005]sam-Toy Cars 堆维护+贪心
  8. Bolt XML和JQBolt Lua代码自动补全插件配置教程
  9. 在xadmin中自定义内容的变量及优化汇总
  10. 2015/11/1用Python写游戏,pygame入门(1):pygame的安装