#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int Exgcd(int a, int b, int &x, int &y){
if(b==0){
x=1, y=0;
return a;
}
int r = Exgcd(b, a%b, x, y);
int tp=x;
x = y;
y = tp-a/b*y;
return r;
}
void Liner_qu(int a, int b, int c, int d, int &x, int &y){
if(c%d) return;//无解
a /= d, b/= d, c /= d;
x *= c; // 任意一解
y *= c;
int tx = x;
x = ((x%b)+b)%b; //最小非负整数解
int k=(tx-x)/b;
y += k*a; //对应y的最小整数解
printf("%d %d\n", x, y);
}
求解最小非负整数解时原理不清楚