yukicoder No.849 - yuki国の分割統治

Source

ニコニコミュニティ
問題文

問題概要

省略

解法

省略

cLayversion 20190706-1)のコード

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

int N;
ll A, B, C, D, X[1d5], Y[1d5];

{
  int i, j, k;
  ll d, xx, yy;
  int res = 0;

  rd(A,B,C,D,N,(X,Y)(N));
  d = A*D - B*C;
  if(d < 0) d = -d;
  
  if(d == 0){
    if(A==C==0){
      i = gcd(B, D);
      A = 0;
      B = i;
    } else {
      i = gcd(A, C);
      B = B * i / A;
      A = i;
    }

    rep(k,N){
      i = if[A, X[k]/A, Y[k]/B];
      X[k] -= A * i;
      Y[k] -= B * i;
    }
  } else {
    rep(k,N){
      xx = X[k];
      yy = Y[k];
      X[k] = (xx * D - yy * C) %% d;
      Y[k] = (yy * A - xx * B) %% d;
    }
  }
  
  sortA(N, X, Y);
  rep(i,N) if(i==0 || X[i]!=X[i-1] || Y[i]!=Y[i-1]) res++;
  wt(res);
}

Current time: 2024年04月19日10時42分18秒
Last modified: 2019年07月06日15時31分38秒 (by laycrs)
Tags: Competitive_Programming_Incomplete yukicoder
トップページに戻る

Logged in as: unknown user (not login)

ログイン: