結果

問題 No.442 和と積
コンテスト
ユーザー kashi3215
提出日時 2018-06-06 17:39:09
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 663 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 467 ms
コンパイル使用メモリ 40,628 KB
実行使用メモリ 15,816 KB
最終ジャッジ日時 2026-03-20 07:59:51
合計ジャッジ時間 7,340 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2 WA * 1
other AC * 10 WA * 5 TLE * 3
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:10:17: warning: 'X' may be used uninitialized [-Wmaybe-uninitialized]
   10 |         while (X%Y != 0 && Y % X != 0) {
      |                ~^~
main.cpp:3:29: note: 'X' was declared here
    3 |         long long int A, B, X, Y, Z, W, V, ANS;
      |                             ^

ソースコード

diff #
raw source code

#include<cstdio>
int main(void) {
	long long int A, B, X, Y, Z, W, V, ANS;
	scanf("%lld %lld", &A, &B);

	if (A == 1 || B == 1) { printf("1"); }
	else
	X = A + B;
	Y = A;
	while (X%Y != 0 && Y % X != 0) {
		if (X > Y) { X = X % Y; }
		else { Y = Y % X; }
	}
	if (X > Y) { ANS = Y; }
	else { ANS = X; }
	Z = A + B;
	W = B;
	while (Z%W != 0 && W % Z != 0) {
		if (Z > W) { Z =Z % W; }
		else { W = W % Z; }
	}
	if (Z > W) { ANS = ANS * W; }
	else { ANS = ANS * Z; }

	V = A + B;

	while (V%ANS != 0 && ANS % V != 0) {
		if (V > ANS) { V = V % ANS; }
		else { ANS = ANS % V; }
	}
	
	if (ANS > V) { printf("%lld", V); }
	else {
		printf("%lld", ANS);
	}
	return 0;

}
0