結果

問題 No.816 Beautiful tuples
コンテスト
ユーザー nGen114204427
提出日時 2019-04-22 19:54:44
言語 C(gnu17)
(gcc 15.2.0)
コンパイル:
gcc-15 -O2 -std=gnu17 -Wno-error=implicit-function-declaration -Wno-error=implicit-int -Wno-error=incompatible-pointer-types -Wno-error=int-conversion -DONLINE_JUDGE -o a.out _filename_ -lm
実行:
./a.out
結果
AC  
実行時間 1 ms / 1,500 ms
コード長 910 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 154 ms
コンパイル使用メモリ 38,336 KB
最終ジャッジ日時 2026-02-22 03:09:10
ジャッジサーバーID
(参考情報)
judge3 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 15
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include<stdio.h>
int main(void){
    unsigned long long int A,B,ans,ans_ap,ans_bp,max_ans,n;
    scanf("%llu %llu%*c",&A,&B);
    if(A<B){
        ans_ap=B-A;//+=B*x
        ans_bp=A*(B/A+1)-B;//+=A*x
    }else{
        ans_ap=B*(A/B+1)-A;//+=B*x
        ans_bp=A-B;//+=A*x
    }
    max_ans=A+B;
    ans=ans_bp<ans_ap?ans_bp:ans_ap;
    while(ans<=max_ans){
        if(max_ans%ans==0&&(A+ans)%B==0&&(B+ans)%A==0&&ans!=A&&ans!=B)break;
        if(ans_ap<ans_bp){
            if(ans_ap+B<ans_bp){
                ans_ap+=B;
                ans=ans_ap;
            }else{
                ans=ans_bp;
                ans_bp+=A;
            }
        }else{
            if(ans_bp+A<ans_ap){
                ans_bp+=A;
                ans=ans_bp;
            }else{
                ans=ans_ap;
                ans_ap+=B;
            }
        }
    }
    if(ans>max_ans)printf("-1");
    else printf("%llu",ans);
}
0