D - 船之战

Alice and Bob love playing one-dimensional battle ships. They play on the field in the form of a line consisting of n square cells (that is, on a 1?×?n table).

At the beginning of the game Alice puts k ships on the field without telling their positions to Bob. Each ship looks as a 1?×?a rectangle (that is, it occupies a sequence of a consecutive squares of the field). The ships cannot intersect and even touch each other.

After that Bob makes a sequence of "shots". He names cells of the field and Alice either says that the cell is empty ("miss"), or that the cell belongs to some ship ("hit").

But here‘s the problem! Alice like to cheat. May be that is why she responds to each Bob‘s move with a "miss".

Help Bob catch Alice cheating — find Bob‘s first move, such that after it you can be sure that Alice cheated.

Input

The first line of the input contains three integers: nk and a (1?≤?n,?k,?a?≤?2·105) — the size of the field, the number of the ships and the size of each ship. It is guaranteed that the nk and a are such that you can put k ships of size a on the field, so that no two ships intersect or touch each other.

The second line contains integer m (1?≤?m?≤?n) — the number of Bob‘s moves.

The third line contains m distinct integers x1,?x2,?...,?xm, where xi is the number of the cell where Bob made the i-th shot. The cells are numbered from left to right from 1 to n.

Output

Print a single integer — the number of such Bob‘s first move, after which you can be sure that Alice lied. Bob‘s moves are numbered from 1 to m in the order the were made. If the sought move doesn‘t exist, then print "-1".

Example

Input

11 3 354 8 6 1 11

Output

3

Input

5 1 321 5

Output

-1

Input

5 1 313

Output

1

解法:
 1 #include <iostream>
 2 #include <string.h>
 3 #include <set>
 4 #include <stack>
 5 using namespace std;
 6
 7 const int MAX = 5*100000 + 2000;
 8
 9 int main()
10 {
11     int ti =-1;
12     set<int>s;
13     int L,n,l;
14     int N;
15     cin>>L>>n>>l>>N;
16     s.insert(0);
17     s.insert(L+1);
18     int sum = (L+1)/(l+1);
19     for(int i = 0;i < N;i++)
20     {
21         int temp;
22         cin>>temp;
23         set<int>::iterator it;
24         if(!s.empty())
25         {
26             int temp1,temp2;
27             it = s.lower_bound(temp);
28             temp1 = *it ;
29             temp2 = *(--it);
30             sum = sum - (temp1 -temp2)/(l+1) + (temp - temp2)/(l+1) +(temp1 - temp)/(l+1);
31        //     cout<<"temp1 == temp2 =sum == "<<temp1<<temp2<<sum<<endl;
32         }
33         s.insert(temp);
34
35         if(sum < n)
36         {
37             ti = i+1;
38             break;
39         }
40     }
41
42     cout<<ti<<endl;
43
44     return 0;
45 }
时间: 2024-11-14 12:02:07

D - 船之战的相关文章

关于阅读

最便宜的自我修炼是阅读. 喜欢买书,碍于没有收入心动之时才入手几本. 买得不多,读得也不深. 写此文督促自身不要荒废已买的几本书. 以及自己阅读之路:买书的理由,进度,以及对每本书的心得体会. 记录从会买书走向会读书之路. 一.实体书籍: (一)技术书籍: 1.<Head First Java> 购书途径:奥维博世图书专营店[2014-11-11][39.50元] 购买理由: 阅读计划与进度: 阅读心得体会: 内容简介: <Head First Java>是本完整的面向对象(obj

Head First Java(第2版)中文版pdf

下载地址:网盘下载 内容简介  · · · · · · <Head First Java>是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导.此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程.网络与分布式程序等项目.最重要的,你会学会如何像个面向对象开发者一样去思考. 而且不只是读死书,你还会玩游戏.拼图.解谜题以及以意想不到的方式与Java交互.在这些活动中,你会写出一堆真正的Java程序,包括了一个船舰炮战游戏和一个网络聊天程序

Head First Java(第二版&#183;中文版)PDF下载

网盘下载地址:Head First Java(第二版·中文版)PDF下载 – 易分享电子书PDF资源网 作者: Kathy Sierra,Bert Bates 著 / 杨尊一 编译 张然等 改编 出版社: 中国电力出版社 译者: 杨尊一 出版年: 2007-2 页数: 600 定价: 79.00元 装帧: 16开 丛书: O'Reilly深入浅出系列 内容简介 · · · · · · <Head First Java>是本完整的面向对象(object-oriented,OO)程序设计和Java

超人说我最叼蝙蝠侠笑了 超级英雄战力排名

http://www.wankr.com.cn/z/bagua/33980 来源:原创 | 作者:huzhaopeng| 发表于:2015-05-09 <复仇者联盟2>近期即将上映,但因为日前网络曝出的一份好莱坞超级英雄战斗力排行榜,美国队长排名仅位于第三梯队瞬间掉落神坛!而无敌高富帅钢铁侠居然 只是战斗5的渣,无法直视的节奏PS:据说要熟知这份超级英雄榜,不仅要是英雄迷,还要是漫威.DC漫画迷,熊孩纸们表激动..有空要多看书,学问少也是 硬伤…… TOP 50 <复仇者联盟>鹰眼

攻略三战的完美体验3Castle Fantisia阿兰&#183;梅希亚战争艾伦西战记它包含重做版本(这是新的艾伦&#183;梅希亚大战)

(城堡幻想曲3,纠正大家个错误哦,不是圣魔大战3,圣魔大战是城堡幻想曲2,圣魔大战不是个系列,艾伦西亚战记==艾伦希亚战记,一个游戏日文名:タイトル キャッスルファンタジア -エレンシア戦記-リニューアル,日文攻略:艾伦西亚战记(艾伦希亚战记)日文攻略) 本文经过几天的改动,应该是完美了(8个MM都追到了,当然我不会就此结束,还会继续改动),我针对重作版和我玩的情况对文章进行补充,因为版本号不同,有些地方仅仅能參考了,我玩的是重做版汉化第二版(详细看城堡幻想曲圣魔大战3(Castle Fanti

友谊的小船说翻就翻,谁还在和VMware同一条船?

去年十月份Dell对EMC约670亿美元的收购仍然在业内被人频频谈起,不过本着先看后说的态度一直没有发表评论,现在这场世纪收购已经过去差不多半年了,业内也有了不少的新变化,是时候坐下来来聊聊一下这场变革对业内,特别是对VMware公司的影响. 股价,人事变动 我们还是先来看看股价吧,这是最直接判断一家公司是否健康成长的标志.下图就是过去的七个月中VMware公司股价的变化. Dell对EMC的收购对VMware绝对不是一个好事情,从股价上看,VMware的股价从收购前的超过80美元/股直线跳水到

二人对战游戏 结构体+函数

class 对战713 { struct Player { public string Name; public int Blood; public int Attact; public int Defence; public int DuoBi; public ArrayList JiNeng; public ArrayList ShangHai; } static void Main (string[] args) { #region 定义技能库 string[] JN; int[] SH;

【UOJ】【UR #2】猪猪侠再战括号序列(splay/贪心)

http://uoj.ac/problem/31 纪念伟大的没有调出来的splay... 竟然那个find那里写错了!!!!!!!!!!!!! 以后要记住:一定要好好想过! (正解的话我就不写了,太简单了.. #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <iostream> #include <algorithm> #

用 MuGo 搭建 Go Engine 在 KGS 对战

MuGo 是一个开源的 Go Engine,下棋能力大概在 10k - 2k 左右. 用 MuGo 搭建 Go Engine 并在 KGS 对战的步骤如下: 1. 安装 TensorFlow 因为 MuGo 要用 Python3,所以要用 Python 3 的 TensorFlow 版本,或者用 Python3 编译源码安装. 2. 下载 MuGo https://github.com/brilee/MuGo 因为 MuGo 是 python 写的,并且自带训练好的 model,所以下载后可以直