Advertisement
pb_jiang

LC2552 WA

Jan 28th, 2023
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. class Solution {
  2.     using ll = long long;
  3.     using vl = vector<ll>;
  4.     using vvl = vector<vector<ll>>;
  5. public:
  6.     long long countQuadruplets(vector<int>& ns) {
  7.         ll ret = 0;
  8.         int n = ns.size();
  9.         vvl ij(n, vl(n));
  10.         vvl kl(n, vl(n));
  11.         for (int i = 0; i < n; ++i) {
  12.             int val = 0;
  13.             for (int j = 0; j < i; ++j) {
  14.                 if (ns[j] < ns[i]) ++val;
  15.                 ij[i][j] = val;
  16.             }
  17.         }
  18.         for (int k = n - 1; k >= 0; --k) {
  19.             int val = 0;
  20.             for (int l = n - 1; l > k; --l) {
  21.                 if (ns[k] < ns[l]) ++val;
  22.                 kl[k][l] = val;
  23.             }
  24.         }
  25.         for (int k = 0; k + 1 < n; ++k)
  26.             for (int j = 1; j < k; ++j)
  27.                 if (ns[k] < ns[j]) {
  28.                     printf("k:%d j:%d, ij:%lld kl:%lld\n", k, j, ij[j][j-1], kl[j][k] - 1);
  29.                     ret += ij[j][j-1] * (kl[j][k] - 1);
  30.                 }
  31.         return ret;
  32.     }
  33. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement