Yandex.Algorithm 2020 Qualification round C問題 - Testing a function

Source

Yandex.Algorithm 2020 Qualification round
問題文

問題概要

省略

解法

省略

cLayversion 20201031-1)のコード

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

int N, As, Bs;
ll A[1d5], B[1d5];
{
  REP(rd_int()){
    int i, j;
    ll xu, xd, yu, yd, zu, zd;
    rd(As,A(As),Bs,B(Bs));
    if(As != Bs) wt("NO"), continue;
    if(As==0) wt("YES"), continue;

    N = As;
    sortA(N, A); sortA(N, B);

    rep(2){
      rep(i,N) B[i] *= -1;
      sortA(N, B);

      rep(i,1,N){
        if(A[i-1] == A[i] && B[i-1] != B[i]) break_continue;
        if(A[i-1] != A[i] && B[i-1] == B[i]) break_continue;
      }

      if(A[0]==A[N-1]) wt("YES"), break_continue;

      xu = B[N-1] - B[0];
      xd = A[N-1] - A[0];
      reduceFraction(xu, xd);
      yu = B[0] * xd - A[0] * xu;
      yd = xd;

      rep(i,N){
        zu = xu * A[i] + yu;
        zd = xd;
        reduceFraction(zu, zd);
        if(zd < 0) (zu, zd) *= -1;
        if(zd != 1 || zu != B[i]) break_continue;
      }
      wt("YES"), break_continue;
    }
    wt("NO");
  }
}

Current time: 2024年04月19日12時21分15秒
Last modified: 2020年10月31日02時37分39秒 (by laycrs)
Tags: Competitive_Programming_Incomplete Yandex_Algorithm
トップページに戻る

Logged in as: unknown user (not login)

ログイン: