Educational Codeforces Round 97 E問題 - Make It Increasing

Source

Educational Codeforces Round 97 E問題
Problem description

問題概要

省略

解法

省略

cLayversion 20201102-1)のコード

C++に変換後のコードはこちら

//no-unlocked
int N, K, A[5d5+2], B[5d5+2];
int sz, arr[5d5];
{
  int res = 0;
  rd(N,K,A(N),B(K));
  arrInsert(0, N, A, -int_inf);
  arrInsert(N, N, A, int_inf);
  arrInsert(0, K, B, 0);
  arrInsert(K, K, B, N-1);

  rep(i,N) A[i] -= i;
  rep(k,1,K) if(A[B[k-1]] > A[B[k]]) wt(-1), return 0;
  rep(k,1,K){
    sz = 0;
    rep(i,B[k-1]+1,B[k]){
      if(A[i] < A[B[k-1]] || A[i] > A[B[k]]) res++, continue;
      arr[sz++] = A[i];
    }
    if(sz) res += sz - weaklyLIS_length(sz, arr);
  }
  wt(res);
}

Current time: 2024年05月08日10時07分01秒
Last modified: 2020年11月03日21時50分17秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Codeforces
トップページに戻る

Logged in as: unknown user (not login)

ログイン: