結果

問題 No.2183 LCA on Rational Tree
ユーザー tailstails
提出日時 2023-01-17 19:48:45
言語 cLay
(20240714-1)
結果
AC  
実行時間 41 ms / 2,000 ms
コード長 804 bytes
コンパイル時間 8,675 ms
コンパイル使用メモリ 221,400 KB
実行使用メモリ 8,704 KB
最終ジャッジ日時 2024-06-10 22:19:45
合計ジャッジ時間 8,260 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 9 ms
8,448 KB
testcase_01 AC 28 ms
8,704 KB
testcase_02 AC 41 ms
8,576 KB
testcase_03 AC 24 ms
8,576 KB
testcase_04 AC 13 ms
8,576 KB
testcase_05 AC 29 ms
8,704 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

ll@q;
rep(q){
	ll@up,@uq,uf[32],ufn,ul=0;
	ll@vp,@vq,vf[32],vfn,vl=0;
	uq-=up;
	vq-=vp;
	ufn=Factor(uq,uf);
	vfn=Factor(vq,vf);

	while(1){
		ll d=vq-uq;
		if(d==0){
			if(up<vp){
				if(vp<up+ul){
					wt(vp,vp+vq);
					break;
				}
			}else{
				if(up<vp+vl){
					wt(up,up+uq);
					break;
				}
			}
		}
		if(d<=0){
			up+=ul;
			rep(i,ufn){
				while(up%uf[i]==0&&uq%uf[i]==0){
					up/=uf[i];
					uq/=uf[i];
				}
			}
			ul=1<<30;
			if(uq>1){
				rep(i,ufn){
					if(uq%uf[i]==0){
						ll r=uf[i]-up%uf[i];
						ul<?=r;
					}
				}
			}
		}
		if(d>=0){
			vp+=vl;
			rep(i,vfn){
				while(vp%vf[i]==0&&vq%vf[i]==0){
					vp/=vf[i];
					vq/=vf[i];
				}
			}
			vl=1<<30;
			if(vq>1){
				rep(i,vfn){
					if(vq%vf[i]==0){
						ll r=vf[i]-vp%vf[i];
						vl<?=r;
					}
				}
			}
		}
	}
}
0