描述

HIHO银行等待区有一排N个座位,从左到右依次编号1~N。现在有M位顾客坐在座位上,其中第i位坐在编号Ai的座位上。

之后又陆续来了K位顾客,(K + M ≤ N) 他们都会选择坐在最"舒适"的空座位上,并且过程中没有顾客离开自己的座位。

最"舒适"的定义是:

1. 对于一个座位,我们将它左边连续的空座位数目记作X,它右边连续的空座位数目记作Y。

2. 顾客首先会选择min(X, Y)最大的座位。

3. 如果有多个选择,顾客会选择其中max(X, Y)最大的座位。

4. 如果还是有多个选择,顾客会选择其中编号最小的座位。

请你计算出之后来的K位顾客坐在几号座位上。

输入

第一行包含三个整数N,M和K。

第二行包含M个整数A1, A2, ... AM。

对于50%的数据,1 ≤ N ≤ 1000

对于100%的数据,1 ≤ N ≤ 100000,  1 ≤ Ai ≤ N,  K + M ≤ N

输出

输出K行,每行一个整数代表该位顾客座位的编号。

样例输入

10 2 3
1 10

样例输出

5
7
3

题意:其实就是要坐在最长的空白处的中间,如果有多个长度相同的,选择左边那个。

思路:STL单调队列保存每一段空白,以长度为第一关键字,位置为第二关键字。每次坐进来一个人,会把一段空白分成两段空白,把两个新的插入队列里。

因为说了最后依然有空位,所以不必考虑越界的情况。

#include<queue>
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
struct in
{
int id;int l;int r;
in(){}
in(int x,int y,int z):id(x),l(y),r(z){}
friend bool operator < (in a,in b){
if(a.r-a.l==b.r-b.l) return a.id>b.id;
return a.r-a.l<b.r-b.l;
}
};
int a[maxn],used[maxn],L[maxn],R[maxn];
priority_queue<in>q;
int main()
{
int N,M,K,i,j;
scanf("%d%d%d",&N,&M,&K);
used[]=; used[N+]=;
for(i=;i<=M;i++) scanf("%d",&a[i]);
sort(a+,a+M+);
a[]=;a[M+]=N+;
for(i=;i<=M+;i++) {
L[i]=a[i-]+; R[i]=a[i]-;
q.push(in((L[i]+R[i])/,L[i],R[i]));
}
for(i=;i<=K;i++){
in tmp=q.top(); q.pop();
printf("%d\n",tmp.id);
q.push(in((tmp.id-+tmp.l)/,tmp.l,tmp.id-));
q.push(in((tmp.r+tmp.id+)/,tmp.id+,tmp.r));
}
return ;
}

最新文章

  1. 函数的使用顺序---TABLES,USING,CHANGING
  2. git上传代码到osc@git
  3. 学习vulkan的几个有用的网址
  4. [转]Installing SharePoint 2013 on Windows Server 2012 R2
  5. STC12C5A60S2笔记2(存储)
  6. Windows Server 2012 Recycle Bin corrupted
  7. JDBC连接各种数据库的字符串,就是不好记
  8. bzoj3545: [ONTAK2010]Peaks
  9. Codeforces Round #353 (Div. 2) D. Tree Construction (二分,stl_set)
  10. NHibernate 存储过程使用
  11. pythonBasic
  12. 通过pull解析器操作安卓的xml
  13. Java中public,private,final,static等概念的解读
  14. VB.NET 机房收费系统项目总结
  15. 三、oracle 用户管理(user)
  16. SQL随记(二)
  17. eclipse 中 导入git项目无法导入的问题
  18. Loj #2731 「JOISC 2016 Day 1」棋盘游戏
  19. org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: c
  20. codeforces 750D New Year and Fireworks【DFS】

热门文章

  1. Js 流程控制
  2. rsync故障排查整理
  3. 算法笔记字符串处理问题H:编排字符串(2064)
  4. Ubuntu 16.04下快速在当前目录打开终端的快捷键设置
  5. keras模型总结
  6. 利用Loader来动态载入不同的QML文件来改变UI
  7. Solidworks如何制作动画2
  8. 我所见过的最简短、最灵活的javascript日期转字符串工具函数
  9. MySql 查询一周内记录
  10. ShopMall