AtCoder Grand Contest 038 B問題 - Sorting a Segment

Source

AtCoder Grand Contest 038
問題文

問題概要

省略

解法

省略

cLayversion 20190921-1)のコード

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

int N, K, P[2d5];
int up[2d5], mn[2d5], mx[2d5];
{
  int res = 0, tmp = 0;
  rd(N,K,P(N));

  up[0] = 1;
  rep(i,1,N) up[i] = if[P[i] > P[i-1], up[i-1] + 1, 1];

  slideMin(N, K, P, mn);
  slideMax(N, K, P, mx);

  rep(i,N-K+1){
    res++;
    if(up[i+K-1] >= K){
      if(tmp) res--;
      tmp = 1;
      continue;
    }
    if(i==0) continue;

    if(mn[i-1] != P[i-1]) continue;
    if(mx[i] != P[i+K-1]) continue;
    res--;
  }

  wt(res);
}

Current time: 2024年03月29日17時56分15秒
Last modified: 2019年09月22日00時26分17秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Grand_Contest AGC038 AGC_B
トップページに戻る

Logged in as: unknown user (not login)

ログイン: