AtCoder Beginner Contest #119 D問題 - Lazy Faith

Source

AtCoder Beginner Contest #119
問題文

問題概要

省略

解法

省略

cLayversion 20190715-1)のコード

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

int A, B, Q;
ll S[1d5], T[1d5], X;
{
  int i, j, a, b;
  ll res;
  rd(A,B,Q,S(A),T(B));
  rep(Q){
    rd(X);
    res = ll_inf;
    a = bsearch_min[int,i,0,A](X<=S[i]);
    b = bsearch_min[int,i,0,B](X<=T[i]);
    rep(i,a-1,a+1) if(0 <= i < A) rep(j,b-1,b+1) if(0 <= j < B){
      res <?= abs(X-S[i]) + abs(S[i]-T[j]);
      res <?= abs(X-T[j]) + abs(S[i]-T[j]);
    }
    wt(res);
  }
}

cLayversion 20190715-1)のコード

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

int A, B, Q;
ll S[1d5], T[1d5], X[1d5];
int ind[1d5]; ll res[1d5];
{
  int i, j, k, a, b;
  ll tmp;
  rd(A,B,Q,S(A),T(B),X(Q));
  rep(i,Q) ind[i] = i;
  sortA(Q, X, ind);

  a = b = 0;
  rep(k,Q){
    tmp = ll_inf;
    while(a<A && S[a]<X[k]) a++;
    while(b<B && T[b]<X[k]) b++;
    rep(i,a-1,a+1) if(0 <= i < A) rep(j,b-1,b+1) if(0 <= j < B){
      tmp <?= min(abs(X[k]-S[i]), abs(X[k]-T[j])) + abs(S[i]-T[j]);
    }
    res[ind[k]] = tmp;
  }

  rep(i,Q) wt(res[i]);
}

Current time: 2021年09月19日20時40分51秒
Last modified: 2019年07月19日02時00分55秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC119 ABC_D
トップページに戻る

Logged in as: unknown user (not login)

ログイン: