最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 【模板】二元一次不定方程 (exgcd)

    正文概述 陈老师   2026-01-20 15:16:07  

    题目描述

    给定不定方程

    ax+by=cax+by=c

    若该方程无整数解,输出 -1

    若该方程有整数解,且有正整数解,则输出其正整数解的数量,所有正整数解中 xx 的最小值,所有正整数解中 yy 的最小值,所有正整数解中 xx 的最大值,以及所有正整数解中 yy 的最大值。

    若方程有整数解,但没有正整数解,你需要输出所有整数解xx 的最小正整数值, yy 的最小正整数值。

    正整数解即为 x,yx, y 均为正整数的解,0\boldsymbol{0} 不是正整数

    整数解即为 x,yx,y 均为整数的解。

    xx 的最小正整数值即所有 xx 为正整数的整数解中 xx 的最小值,yy 同理。

    输入格式

    第一行一个正整数 TT,代表数据组数。

    接下来 TT 行,每行三个由空格隔开的正整数 a,b,ca, b, c

    输出格式

    TT 行。

    若该行对应的询问无整数解,一个数字 -1

    若该行对应的询问有整数解但无正整数解,包含 22 个由空格隔开的数字,依次代表整数解中,xx 的最小正整数值,yy 的最小正整数值。

    否则包含 55 个由空格隔开的数字,依次代表正整数解的数量,正整数解中,xx 的最小值,yy 的最小值,xx 的最大值,yy 的最大值。

    读入输出量较大,注意使用较快的读入输出方式

    样例

    7
    2 11 100
    3 18 6
    192 608 17
    19 2 60817
    11 45 14
    19 19 810
    98 76 5432
    
    4 6 2 39 8
    2 1
    -1
    1600 1 18 3199 30399
    34 3
    -1
    2 12 7 50 56
    

    数据范围

    对于 100%100\% 的数据,1T2×1051 \le T \le 2 \times {10}^51a,b,c1091 \le a, b, c \le {10}^9

    信息学奥赛网,一个优质的信息学奥赛学习资源平台!
    信息学奥赛网 » 【模板】二元一次不定方程 (exgcd)