设为首页 加入收藏

TOP

Codeforces 474 E. Pillars
2015-07-20 17:31:00 来源: 作者: 【 】 浏览:2
Tags:Codeforces 474 Pillars


水过......

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 
  
   
#include 
   
     #include 
    
      #include 
     
       #include 
      
        using namespace std; typedef long long int LL; const int maxn=100100; int n,K; LL h[maxn],sum[maxn],tr[maxn]; vector
       
         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
        
         =K&&sum[j]+1>sum[i]) { sum[i]=sum[j]+1; tr[i]=j; } if(sum[i]>sum[maxl]) { maxl=i; } } } cout<
         
          



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇BZOJ 3209 花神的数论题 数位DP+.. 下一篇HDU 2425-Hiking Trip(BFS+优先队..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ Lambda表达式保 (2025-12-26 05:49:45)
·C++ Lambda表达式的 (2025-12-26 05:49:42)
·深入浅出 C++ Lambda (2025-12-26 05:49:40)
·C语言指针从入门到基 (2025-12-26 05:21:36)
·【C语言指针初阶】C (2025-12-26 05:21:33)