求助为什么 把cin>>t改成scanf就能过
#include <bits/stdc++.h>
#define LL long long
#define INF INT_MAX
#define endl "\n"
#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
const int N = 3e6 + 10;
LL gcd(LL n, LL m)
{
return (n % m == 0) ? m : gcd(m, n % m);
}
void exgcd(LL a, LL b, LL& x, LL& y)
{
if (b == 0) {
x = 1, y = 0;
return;
}
LL p;
exgcd(b, a % b, x, y);
p = x;
x = y;
y = p - (a / b) * y;
return;
}
int main()
{
IOS;
LL t = 0;
//cin >> t;
scanf("%lld", &t);
while (t--) {
LL a, b, c, g, x = 0, y = 0, x_min, y_min, x_max, y_max, ok = 0, k;
scanf("%lld%lld%lld", &a, &b, &c);
g = gcd(a, b);
if (c % g != 0) puts("-1");
else {
a /= g;
b /= g;
c /= g;
exgcd(a, b, x, y);
x *= c;
y *= c;//特解
x_min = x > 0 && x % b != 0 ? x % b : x % b + b;
y_max = (c - x_min * a) / b;
y_min = y > 0 && y % a != 0 ? y % a : y % a + a;
x_max = (c - y_min * b) / a;
if (x_max > 0)
ok = (x_max - x_min) / b + 1;
if (!ok)
printf("%lld %lld\n", x_min, y_min);
else printf("%lld %lld %lld %lld %lld\n", ok, x_min, y_min, x_max, y_max);
}
}
return 0;
}