AtCoder Beginner Contest #128 E問題 - Roadwork

Source

AtCoder Beginner Contest #128
問題文

問題概要

省略

解法

省略

cLayversion 20190526-1)のコード

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

int N, Q;
int S[2d5], T[2d5], X[2d5];
int D[2d5];

int res[2d5];
int pl[6d5], tp[6d5], ev[6d5], sz;

{
  int i, k;
  set<int> s;

  rd(N,Q,(S,T,X)(N),D(Q));

  sz = 0;
  rep(i,N){
    pl[sz] = X[i]-T[i];
    tp[sz] = -1;
    ev[sz] = i;
    sz++;

    pl[sz] = X[i]-S[i];
    tp[sz] = -2;
    ev[sz] = i;
    sz++;
  }
  rep(i,Q){
    pl[sz] = -D[i];
    tp[sz] = -3;
    ev[sz] = i;
    sz++;
  }

  sortA(sz, pl, tp, ev);

  rep(k,sz){
    if(tp[k]==-1) s.insert(X[ev[k]]);
    if(tp[k]==-2) s.erase(X[ev[k]]);
    if(tp[k]==-3){
      if(s.size()==0)  res[ev[k]] = -1;
      else             res[ev[k]] = *(s.begin());
    }
  }

  wtLn(res(Q));
}

Current time: 2021年09月18日03時59分13秒
Last modified: 2019年05月26日23時27分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder AtCoder_Beginner_Contest ABC128 ABC_E
トップページに戻る

Logged in as: unknown user (not login)

ログイン: