Commit 6c9cc43a authored by 24OI-bot's avatar 24OI-bot
Browse files

style: format markdown files with remark-lint

parent 943be801
Loading
Loading
Loading
Loading
+59 −70
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@ $$
    #include <algorithm>
    #include <cstdio>
    
    
    typedef long long ll;
    
    const int K = 105;
@@ -65,64 +64,54 @@ $$
    
    int T, n, k, a[K], b[K], fact[N << 1], m[K][K];
    
    int qpow(int x, int y)
    {
    int qpow(int x, int y) {
      int out = 1;
    	while (y)
    	{
      while (y) {
        if (y & 1) out = (ll)out * x % mod;
        x = (ll)x * x % mod;
        y >>= 1;
      }
      return out;
    }
    int c(int x, int y)
    {
    	return (ll) fact[x] * qpow(fact[y], mod - 2) % mod * qpow(fact[x - y], mod - 2) % mod;
    int c(int x, int y) {
      return (ll)fact[x] * qpow(fact[y], mod - 2) % mod *
             qpow(fact[x - y], mod - 2) % mod;
    }
    int main()
    {
    int main() {
      fact[0] = 1;
      for (int i = 1; i < N * 2; ++i) fact[i] = (ll)fact[i - 1] * i % mod;
    
      scanf("%d", &T);
    
    	while (T--)
    	{
      while (T--) {
        scanf("%d%d", &n, &k);
    
        for (int i = 1; i <= k; ++i) scanf("%d", a + i);
        for (int i = 1; i <= k; ++i) scanf("%d", b + i);
    
    		for (int i = 1; i <= k; ++i)
    		{
    			for (int j = 1; j <= k; ++j)
    			{
    				if (a[i] <= b[j]) m[i][j] = c(b[j] - a[i] + n - 1, n - 1);
    				else m[i][j] = 0;
        for (int i = 1; i <= k; ++i) {
          for (int j = 1; j <= k; ++j) {
            if (a[i] <= b[j])
              m[i][j] = c(b[j] - a[i] + n - 1, n - 1);
            else
              m[i][j] = 0;
          }
        }
    
    		for (int i = 1; i < k; ++i)
    		{
    			if (!m[i][i])
    			{
    				for (int j = i + 1; j <= k; ++j)
    				{
    					if (m[j][i])
    					{
        for (int i = 1; i < k; ++i) {
          if (!m[i][i]) {
            for (int j = i + 1; j <= k; ++j) {
              if (m[j][i]) {
                std::swap(m[i], m[j]);
                break;
              }
            }
          }
          if (!m[i][i]) continue;
    			for (int j = i + 1; j <= k; ++j)
    			{
          for (int j = i + 1; j <= k; ++j) {
            if (!m[j][i]) continue;
            int mul = (ll)m[j][i] * qpow(m[i][i], mod - 2) % mod;
    				for (int p = i; p <= k; ++p)
    				{
            for (int p = i; p <= k; ++p) {
              m[j][p] = (m[j][p] - (ll)m[i][p] * mul % mod + mod) % mod;
            }
          }