結果

問題 No.2769 Number of Rhombi
ユーザー tailstails
提出日時 2024-05-31 23:14:50
言語 cLay
(20241019-1)
結果
AC  
実行時間 1,068 ms / 5,000 ms
コード長 560 bytes
コンパイル時間 3,190 ms
コンパイル使用メモリ 186,844 KB
実行使用メモリ 87,680 KB
最終ジャッジ日時 2024-12-21 01:33:39
合計ジャッジ時間 28,953 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 32
権限があれば一括ダウンロードができます

ソースコード

diff #

map<pair<ll,ll>,map<pair<ll,ll>,ll>>mm;
ll@n,@(x,y)[n],z=0;
rep(i,n){
	rep(j,i){
		ll cx=x[i]+x[j];
		ll cy=y[i]+y[j];
		map<pair<ll,ll>,ll>&m=mm[{cx,cy}];
		ll dx=x[i]-x[j];
		ll dy=y[i]-y[j];
		ll ex;
		ll ey;
		if(dx==0){
			dy=1;
			ex=1;
			ey=0;
		}else if(dy==0){
			dx=1;
			ex=0;
			ey=1;
		}else{
			ll g=gcd(abs(dx),abs(dy));
			dx/=g;
			dy/=g;
			if(dy<0){
				dx=-dx;
				dy=-dy;
			}
			ex=-dy;
			ey=dx;
			if(ey<0){
				ex=-ex;
				ey=-ey;
			}
		}
		m[{dx,dy}]+=1;
		auto t=m.find({ex,ey});
		if(t!=m.end()){
			z+=t->second;
		}
	}
}
wt(z);
0