第三回 アルゴリズム実技検定 N問題 - 入れ替えと並び替え

Source

第三回 アルゴリズム実技検定
問題文

問題概要

省略

解法

省略

cLayversion 20201229-1)のコード

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

int N, A[2d5], T, X, Y;
set<int> s;
{
  int i;
  rd(N);
  rep(i,N) A[i] = i + 1;
  s.insert(int_inf);
  REP(rd_int()){
    rd(T,X--,Y--);
    if(T==1){
      swap(A[X], A[X+1]);
      s.insert(X);
      s.insert(X+1);
      s.insert(X+2);
    } else {
      for(;;){
        i = *s.lower_bound(X+1);
        if(i > Y) break;
        if(A[i] > A[i-1]) s.erase(i), continue;
        s.insert(i+1);
        while(i > X && A[i] < A[i-1]){
          swap(A[i], A[i-1]);
          i--;
          s.insert(i);
        }
      }
    }
  }
  wt(A(N));
}

Current time: 2021年09月28日21時53分21秒
Last modified: 2021年01月02日17時05分28秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: