喵哈哈村的排队

喵哈哈村的排队

发布时间: 2017年2月26日 16:13   最后更新: 2017年2月26日 16:14   时间限制: 1000ms   内存限制: 128M

描述

有一堆喵哈哈村的村民们在排队,他们从队列的尾部开始标号,标号为1的村民站在最后面,标号为n的村民站在队列的最前面,而且每个村民都拥有一个智商值a[i]。

这些村民有时候会觉得不开心,因为他们觉得凭什么一个智商比他低的人,可以站在他的前面!现在对于每个村民,他们都想知道,在他前面,智商比他低,离他最远的距离是多少。

输入

第一行n,表示有n只咸鱼
第二行n个整数,表示每个村民的智商值a[i].
n<=200000 1<=a[i]<=1000000000

输出

对于每个村民,输出智商比他的,且离他最远的距离是多少,如果没有输出-1

样例输入1 复制

6
10 8 5 3 50 45

样例输出1

2 1 0 -1 0 -1注意注意,多组输入把我害惨了,今天就吸取教训了
 1 #include <iostream>
 2 #include <string.h>
 3 #include <stdio.h>
 4 #include <algorithm>
 5 #define N 200005
 6 #define mem(a) memset(a,0,sizeof(a))
 7 using namespace std;
 8 int n[N],k[N];
 9 int m;
10 int BinarySearch(int begin,int end,int x){
11     int mid,pos=0;
12     int t=begin;
13     if(begin==end)
14         return -1;
15     while(begin<end){
16         mid=(begin+end)/2;
17         if(k[mid]<x){
18             begin=mid+1;
19             pos=begin;
20         }else {
21             end=mid;
22             pos=end;
23         }
24     }
25     if(k[pos]==x&&k[pos-1]<x&&pos-1>=t)
26         return pos-1;
27     if(k[pos]==x)
28         return -1;
29     if(k[pos]<x)
30         return pos;
31     return pos-1;
32 }
33 int main(){
34     while(~scanf("%d",&m)){
35         mem(n);
36         mem(k);
37         for(int i=0;i<m;i++){
38             scanf("%d",&n[i]);
39         }
40         k[m-1]=n[m-1];
41         for(int i=m-2;i>=0;i--){
42             k[i]=min(k[i+1],n[i]);
43         }
44
45         for(int i=0;i<m;i++){
46             int ans=BinarySearch( i,m-1,n[i]);
47             if(i)
48                 printf(" ");
49             if(ans==-1)
50                 printf("-1");
51             else
52                 printf("%d",ans-i-1);
53         }
54         printf("\n");
55     }
56
57     return 0;
58 }
 
时间: 2024-12-21 14:25:03

喵哈哈村的排队的相关文章

qsc oj-17 喵哈哈村的排队

http://qscoj.cn/problem/17/ 喵哈哈村的排队 描述 有一堆喵哈哈村的村民们在排队,他们从队列的尾部开始标号,标号为1的村民站在最后面,标号为n的村民站在队列的最前面,而且每个村民都拥有一个智商值a[i]. 这些村民有时候会觉得不开心,因为他们觉得凭什么一个智商比他低的人,可以站在他的前面!现在对于每个村民,他们都想知道,在他前面,智商比他低,离他最远的距离是多少. 输入 第一行n,表示有n只咸鱼第二行n个整数,表示每个村民的智商值a[i].n<=200000 1<=a

2017-5-20-Train: 喵哈哈村的魔法考试 Round #17 (Div.2)

A.喵哈哈村的秘境探险(数学) 描述 喵哈哈村的一堆人在前往北京的路上,发现了一个洞穴.由于好奇心大作,于是准备前往洞穴进行探险. 但是有一些人并不愿意前往洞穴,于是他们决定玩以下游戏,来看是否能够去秘境探险: 这儿有n个数,如果所有数的乘积是k的倍数,那么就去探险,否则就不去. 现在问你是否会去. 输入 本题包含若干组测试数据.第一行两个整数n,k,表示数的个数,和k.第二行n个整数,a[i].满足1<=n<=1000,1<=k,a[i]<=1e6 输出 如果要去的话,输出Yes

qscoj 128 喵哈哈村的魔法源泉(2)(模仿快速幂,好题)

喵哈哈村的魔法源泉(2) 发布时间: 2017年5月9日 20:59   最后更新: 2017年5月9日 21:00   时间限制: 1000ms   内存限制: 128M 描述 喵哈哈村有一个魔法源泉,里面有无穷无尽的力量. 但是前提是你能答出这样一个问题: 给你a,b,p,让你输出a*b%p的值. 输入 本题包含若干组测试数据.第一行三个整数a,b,p. 满足:0<=a,b,p<=1e18 输出 输出答案 样例输入1 复制 10 1 7 样例输出1 3题目链接:http://qscoj.c

喵哈哈村的魔法考试 Round #7 (Div.2) B

  B 喵哈哈村的麦克雷  喵哈哈村的麦克雷 发布时间: 2017年3月13日 11:51   最后更新: 2017年3月14日 18:16   时间限制: 1000ms   内存限制: 128M 描述 为了拯救喵哈哈村,这个世界必须要存在英雄. 一名叫做麦克雷的英雄站了出来!他现在面临一个难题: 给定一个N x M的01矩阵,其中1表示陆地,0表示水域.对于每一个位置,求出它距离最近的水域的距离是多少. 矩阵中每个位置与它上下左右相邻的格子距离为1. 输入 本题包含若干组测试数据:第一行包含两

喵哈哈村的括号序列

描述 喵哈哈村的括号序列和外界的括号序列实际上是一样的. 众所周知"()"这样的,就是一个标准的括号序列:"()()()()"这样也是括号序列:"((()))()"这样也是一个合法的括号序列.但是"((("这样,就不是一个合法的括号序列了. 现在沈宝宝非常好奇,给你一个字符串,请从中找出最长的合法括号序列出来. 不知道你能找到吗? 输入 第一行一个T,表示有T组数据.接下来T行,每一行都是一个字符串.保证字符串的长度小于100

喵哈哈村的魔法考试 Round #3 (Div.2) ABCDE

官方题解:http://www.cnblogs.com/qscqesze/p/6480284.html 哗啦啦村的刁难(1) 描述 哗啦啦村作为喵哈哈村的对头,于是他们准备给喵哈哈村一个好看. 哗啦啦村的头号长老--鱼先生,就提出了以下问题: 给你三个木棍,问你这三个木棍,是否能够组成一个非退化的三角形! 输入 第一行一个整数T,表示测试组数的个数.接下来T行,每行三个整数,a,b,c.表示哗啦啦村提供的三根木棍. 满足1<=T<=1001<=a,b,c<=5000 输出 如果可以

2017-5-17-Train:喵哈哈村的魔法考试 Round #18 (Div.2)

A.喵哈哈村的古怪石碑(签到题) 描述 喵哈哈村有个奇怪的石碑,上面浮现出了一个奇怪的问题: 有一数列{an},给出其前三项a1,a2,a3,以及要求的项的编号n,并且数列{an}只可能是等差数列或者是首项为1的等比数列,要求A输出第n项模100007后的值. 输入 一行,四个整数,a1,a2,a3,n.满足:0< |a1|,|a2|,|a3|≤10^5,0<n<10^3.本题包含若干组测试数据. 输出 一行,一个数,即an模100007的值.(负数取模答案为负) 样例输入1 1 2 3

10喵哈哈村的魔法石

题目传送: 描述 传说喵哈哈村有三种神奇的魔法石:第一种魔法石叫做人铁石,拥有A的能量:第二种魔法石叫做地冈石,拥有B的能量:而第三种,则是最神奇的天玄石,拥有无可比拟的C的能量! 但是有一天,沈宝宝太调皮了,把一颗天玄石玩丢了-- "这可玩大发了,这样我会被天行廖责备的."沈宝宝悲伤的说到,"怎么办呢?" 这时候沈宝宝望了望窗外的飞过的白鸽,突然急中生智,想到了一个办法:干脆就用人铁石和地冈石把天玄石凑出来吧! "只要我拿若干个人铁石,若干个地冈石,他们

喵哈哈村的魔法考试 Round #10 (Div.2) A

喵哈哈村与哗啦啦村的大战(一) 发布时间: 2017年3月27日 09:13   时间限制: 1000ms   内存限制: 128M 描述 喵哈哈村因为和哗啦啦村争夺稀有的水晶资源,展开了激烈的战斗! 喵哈哈村里面有n个战士,这些战士每个人一开始拥有a[i]的战斗力,现在每个战士可以被艾尔之光强化三次,每次强化有p的概率增加一点战斗力,反之会有(1-p)的概率降低一点战斗力,当然战斗力不可能降为负数. 现在问题来了,对于喵哈哈村的n个战士,他们强化三次之后,战斗力最高可以到达多少呢?最少可以到达