結果

問題 No.849 yuki国の分割統治
ユーザー beet
提出日時 2019-07-07 17:14:24
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 858 bytes
コンパイル時間 2,177 ms
コンパイル使用メモリ 200,928 KB
最終ジャッジ日時 2025-01-07 06:26:43
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 25 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;
using Int = long long;
template<typename T1,typename T2> inline void chmin(T1 &a,T2 b){if(a>b) a=b;}
template<typename T1,typename T2> inline void chmax(T1 &a,T2 b){if(a<b) a=b;}

//INSERT ABOVE HERE
signed main(){
  Int a,b,c,d;
  cin>>a>>b>>c>>d;
  Int n;
  cin>>n;
  vector<Int> xs(n),ys(n);
  for(Int i=0;i<n;i++) cin>>xs[i]>>ys[i];

  if(a*d-b*c==0){
    Int dx=__gcd(a,c);
    Int dy=__gcd(b,d);
    if(dx==0) dx=2e9;
    if(dy==0) dy=2e9;

    using P = pair<Int, Int>;
    set<P> sp;
    for(Int i=0;i<n;i++)
      sp.emplace(xs[i]%dx,ys[i]%dy);
    cout<<sp.size()<<endl;
    return 0;
  }

  Int m=abs(a*d-b*c);
  using P = pair<Int, Int>;
  set<P> sp;
  for(Int i=0;i<n;i++)
    sp.emplace(((+d*xs[i]-c*ys[i])%m+m)%m,
               ((-b*xs[i]+a*ys[i])%m+m)%m);

  cout<<sp.size()<<endl;
  return 0;
}
0