This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub AlexanderNekrasov/Youthful-Passion-Fruit-teambook
/**
* Author: Iurii Pustovalov
* Date: 2024-09-09
* Description: Determinant in ints
*/
const ll mod = 12345;
ll det(vector<vector<ll>>& a) {
int n = sz(a);
ll ans = 1;
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
while (a[j][i] != 0) { // gcd step
ll t = a[i][i] / a[j][i];
if (t)
for (int k = i; k < n; ++k)
a[i][k] = (a[i][k] - a[j][k] * t) % mod;
swap(a[i], a[j]);
ans *= -1;
}
}
ans = ans * a[i][i] % mod;
if (!ans) return 0;
}
return (ans + mod) % mod;
#line 1 "math/DeterminantInt.cpp"
/**
* Author: Iurii Pustovalov
* Date: 2024-09-09
* Description: Determinant in ints
*/
const ll mod = 12345;
ll det(vector<vector<ll>>& a) {
int n = sz(a);
ll ans = 1;
for (int i = 0; i < n; ++i) {
for (int j = i + 1; j < n; ++j) {
while (a[j][i] != 0) { // gcd step
ll t = a[i][i] / a[j][i];
if (t)
for (int k = i; k < n; ++k)
a[i][k] = (a[i][k] - a[j][k] * t) % mod;
swap(a[i], a[j]);
ans *= -1;
}
}
ans = ans * a[i][i] % mod;
if (!ans) return 0;
}
return (ans + mod) % mod;