题目描述

一群妖王排成一排站在苦情巨树下,寻找自己的转世恋人。
虽然都是妖王,但按照涂山的规定必须进行标号,标号为1的妖王排在最后面,标号为n的妖王排在最前面。每个妖王只有一个妖力值a[i]表示它们现在的地位。
妖王们是讲究实力的,当然不服比它妖力值低的居然可以排在前面,它们现在想知道在它前面,妖力值比它低,而且离它最远的距离是多少?

输入

输入n表示有n个妖王
第二行输入n个整数,表示每个妖王的妖力值a[i]

n<=2*105

1<=a[i]<=109

输出

对于每个妖王,妖力值比它低,而且离它最远的距离是多少,如果没有输出-1

样例输入

6
5 50 45 7 10 1

样例输出

4 3 2 1 0 -1

提示

对于第一个数:5,比它小的数字是1,1距离它最远,最远距离为4
对于第二个数:50,比它小的数字是45 7 10 1,1距离它最远,距离为3
对于第三个数:45,比它小的数字是7 10 1,1距离它最远,距离为2
对于第四个数:50,比它小的数字是10 1,1距离它最远,距离为1
对于第五个数:10,比它小的数字是1,1距离它最远,距离为0
对于第六个数:已经没有比它小的数字了,距离为-1
 #include <iostream>
#include <stdio.h>
using namespace std;
int Min[], arr[];
int main()
{
int n;
while(scanf("%d",&n) != EOF)
{
for(int i = ; i < n; i++)
scanf("%d",&arr[i]);
Min[n-] = arr[n-];
for(int i = n - ; i >= ; i--)
{
Min[i] = min(Min[i+], arr[i]);
}
for(int i = ; i < n;i++)
{
int l = i + ,r = n - ,mid;
while(l <= r)
{
mid = (l + r) / ;
if(Min[mid] < arr[i])
l = mid + ;
else r = mid - ;
}
printf("%d",l-i-);
if(i<n-)
printf(" ");
}
printf("\n");
}
return ;
}

myschool 相思树的更多相关文章

  1. 优化MySchool数据库设计之【巅峰对决】

    优化MySchool数据库设计 之独孤九剑 船舶停靠在港湾是很安全的,但这不是造船的目的 By:北大青鸟五道口原玉明老师 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识 ...

  2. 优化MySchool数据库设计总结

    数据库的设计   一:什么是数据库设计? 数据库设计就是将数据库中的数据实体以及这些数据实体之间的关系,进行规范和结构化的过程. 二:为什么要实施数据库设计? 1:良好的数据库设计可以有效的解决数据冗 ...

  3. 分层开发(MySchool总结)

    由于分层之间存在各层之间的关系窗体之间的方法跳转,故有需要者可以进行下载本地文件 MySchool.rar 3304KB 5/22/2016 9:43:28 AM ,代码中有注释, 上述代码,属个人所 ...

  4. 学员信息录入(StuInfoManager) 用分层实现(既MySchool后的一个案例)

    数据库 数据表名 Student 中文表名 学员信息表 字段显示 字段名 数据类型 字段大小 备注和说明 编号 stu_id int 主键,自增1 学生姓名 stu_name varchar 50 不 ...

  5. 分层开发MySchool总结

    由于分层之间存在各层之间的关系窗体之间的方法跳转,故有需要者可以进行下载本地文件 MySchool.rar 3304KB 5/22/2016 9:43:28 AM ,代码中有注释,

  6. MySchool

    USE [MySchool] GO /****** Object: Table [dbo].[Grade] Script Date: 08/06/2014 15:03:17 ******/ SET A ...

  7. C#分层开发MySchool

    分层开发之MYSCHOOL No.1实现登陆功能,验证用户名和密码.从数据库里进行匹配,看是否有符合要求的数据. 在DAL层编写代码,返回值为布尔类型.方法参数为(student实体类对象),使用参数 ...

  8. Myschool乱码问题 和mysql 备份还原

    show variables like 'character_set%'; alter table users modify username ) character set gbk; alter t ...

  9. WinForm窗体项目 之 MySchool管理系统终极版

    学习WinForm窗体程序也有一段时间了,今天就来尝试着来一个项目热热身~ 在我们通常使用的MySchool管理中,不外乎这几种功能:增.删.改.查.改密码 在过去的C#中确实是挺简单的,但是在学习了 ...

随机推荐

  1. Centos 克隆后端口eth1怎么改回eth0

    复制或克隆后成功并做好后续问题的虚拟机 修改网卡地址vi /etc/udev/rules.d/70-persistent-net.rules 配置ifcfg-eth0脚本,注意HWADDR那行,要和上 ...

  2. MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

    优化应该不仅仅是数据库方面使用高性能的服务器多使用缓存页面服务器.数据库服务器.图片服务器.上传下载服务器分离数据库集群,表分割(水平分割和垂直分割)和表散列负载均衡重视每个代码开发细节,特别是大循环 ...

  3. UI5-文档-3-Hello World!

    通过本教程,您将了解如何在单个HTML页面上通过几个步骤创建一个简单的第一个应用程序. 我们创建了一个带有两个页面和导航按钮的应用程序来在页面之间导航. 预览 Simple "Hello W ...

  4. ios push local notification

    UILocalNotification* localNotification = [[UILocalNotification alloc]init]; localNotification.alertB ...

  5. 通过http方式关闭和重启Jenkins

    Jenkins关闭和重启实现方式.   1.关闭Jenkins 只需要在访问jenkins服务器的网址url地址后加上exit.例如我jenkins的地址http://localhost:8080/, ...

  6. Linux 如何将一个文件夹的所有内容授权给某一个用户

    我们可以使用chown命令,ch这里代表change(改变)的意思,own代表英文单词的owner(拥有者),连在一起就是 change owner ,改变某个文件或者文件夹的拥有者. 一般只有roo ...

  7. Java8函数之旅(四) --四大函数接口

    前言   Java8中函数接口有很多,大概有几十个吧,具体究竟是多少我也数不清,所以一开始看的时候感觉一脸懵逼,不过其实根本没那么复杂,毕竟不应该也没必要把一个东西设计的很复杂. 几个单词   在学习 ...

  8. express + mongodb 搭建一个简易网站 (四)

    express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...

  9. vmadm命令

    VMADM(1M)VMADM(1M) 名称 vmadm - 管理SmartOS虚拟机 概要 / usr / vm / sbin / vmadm <command> [-d] [-v] [特 ...

  10. Egit的merge合并冲突具体解决方法

    稍微总结下弄了半个下午的egit的merge合并冲突解决方法,网上看的都是一个模板出来的,看的糊里糊涂,花了很多时间去实验整个合并流程.. 前提工作 创建一个普通JAVA工程Test,创建一个类Tes ...