Codeforces 474 E. Pillars
2015-10-11 19:33
477 查看
水太......
E. Pillars
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Marmot found a row with n pillars. The i-th pillar
has the height of hi meters.
Starting from one pillar i1,
Marmot wants to jump on the pillarsi2,
..., ik. (1 ≤ i1 < i2 < ... < ik ≤ n).
From a pillar i Marmot can jump on a pillar j only
if i < j and |hi - hj| ≥ d,
where |x| is the absolute value of the number x.
Now Marmot is asking you find out a jump sequence with maximal length and print it.
Input
The first line contains two integers n and d (1 ≤ n ≤ 105, 0 ≤ d ≤ 109).
The second line contains n numbers h1, h2, ..., hn (1 ≤ hi ≤ 1015).
Output
The first line should contain one integer k, the maximal length of a jump sequence.
The second line should contain k integers i1, i2, ..., ik (1 ≤ i1 < i2 < ... < ik ≤ n),
representing the pillars' indices from the maximal length jump sequence.
If there is more than one maximal length jump sequence, print any.
Sample test(s)
input
output
input
output
Note
In the first example Marmot chooses the pillars 1, 2, 3, 5 with
the heights 1, 3, 6, 4.
Another jump sequence of length 4 is 1, 2, 4, 5.
E. Pillars
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Marmot found a row with n pillars. The i-th pillar
has the height of hi meters.
Starting from one pillar i1,
Marmot wants to jump on the pillarsi2,
..., ik. (1 ≤ i1 < i2 < ... < ik ≤ n).
From a pillar i Marmot can jump on a pillar j only
if i < j and |hi - hj| ≥ d,
where |x| is the absolute value of the number x.
Now Marmot is asking you find out a jump sequence with maximal length and print it.
Input
The first line contains two integers n and d (1 ≤ n ≤ 105, 0 ≤ d ≤ 109).
The second line contains n numbers h1, h2, ..., hn (1 ≤ hi ≤ 1015).
Output
The first line should contain one integer k, the maximal length of a jump sequence.
The second line should contain k integers i1, i2, ..., ik (1 ≤ i1 < i2 < ... < ik ≤ n),
representing the pillars' indices from the maximal length jump sequence.
If there is more than one maximal length jump sequence, print any.
Sample test(s)
input
5 2 1 3 6 7 4
output
4 1 2 3 5
input
10 3 2 1 3 6 9 11 7 3 20 18
output
6 1 4 6 7 8 9
Note
In the first example Marmot chooses the pillars 1, 2, 3, 5 with
the heights 1, 3, 6, 4.
Another jump sequence of length 4 is 1, 2, 4, 5.
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <vector> using namespace std; typedef long long int LL; const int maxn=100100; int n,K; LL h[maxn],sum[maxn],tr[maxn]; vector<LL> road; int main() { cin>>n>>K; sum[1]=1; int maxl=1; for(int i=1;i<=n;i++) { cin>>h[i]; sum[i]=1; for(int j=max(1,i-500);j<i;j++) { if(abs(h[j]-h[i])>=K&&sum[j]+1>sum[i]) { sum[i]=sum[j]+1; tr[i]=j; } if(sum[i]>sum[maxl]) { maxl=i; } } } cout<<sum[maxl]<<endl; int T=tr[maxl]; road.push_back(maxl); while(T) { road.push_back(T); T=tr[T]; } while(road.size()) { cout<<road.back()<<" "; road.pop_back(); } return 0; }
相关文章推荐
- 空间点过程与随机测度(一):从数星星说起
- 后缀数组-解决字符串的利器
- 一些些小小的读博分享
- ubuntu查看网速的工具
- stm32之spi之NSS管脚信号
- java学习笔记基础知识(一)
- 成长的人,求知的心
- Django使用-Django搭建简单博客
- cocos2d-x 3.4 之 三消类游戏——万圣大作战(附加篇)
- Rehl7 设置ntp服务,同步指定服务器时间。Ntp改为chrony
- 欢迎使用CSDN-markdown编辑器
- java中static作用详解
- Linux文件打包与解压缩
- 给Cocos2D视图添加手势支持
- hdu 1007 N个点中输出2点的最小距离的一半
- 给Cocos2D视图添加手势支持
- 给Cocos2D视图添加手势支持
- MooseFS之数据存储服务器的安装与配置
- BestCoder Round #59 (div.2)B.Reorder the Books
- ListView异步加载图片--图片缓存和错位问题解决方案