Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define debug(l) cerr<<#l<<' '<<l<<'\n';
- #include "bits/stdc++.h"
- using namespace std;
- #define all(a) a.begin(), a.end()
- typedef int ll;
- typedef pair<ll, ll> pll;
- typedef long double ld;
- struct Fenw {
- vector<ll> f;
- Fenw(ll n) {
- f.resize(n + 1);
- }
- ll get(ll i) {
- ll ans = 0;
- for (; i > 0; i -= i & -i) {
- ans += f[i];
- }
- return ans;
- }
- void upd(ll i, ll add) {
- for (ll j = i; j < f.size(); j += j & -j) {
- f[j] += add;
- }
- }
- ll sum(ll l, ll r) {
- return get(r) - get(l - 1);
- }
- };
- const ll inf = 1e18;
- signed main() {
- #ifdef _DEBUG
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- ios_base::sync_with_stdio(false);
- cin.tie(nullptr);
- cout.tie(nullptr);
- ll t = 1;
- cin >> t;
- while (t--) {
- ll n;
- cin >> n;
- vector<ll> a(n);
- for (ll i = 0; i < n; i++) {
- cin >> a[i];
- }
- vector<vector<ll>> left(n, vector<ll>(n, 0)), right(n, vector<ll>(n, 0));
- for (ll i = 0; i < n; i++) {
- for (ll j = n - 1; j > i; j--) {
- if (j + 1 < n) {
- left[i][j] = left[i][j + 1];
- }
- if (a[i] > a[j]) {
- left[i][j]++;
- }
- }
- }
- for (ll j = 0; j < n; j++) {
- for (ll i = 0; i < j; i++) {
- if (i - 1 >= 0) {
- right[i][j] = right[i - 1][j];
- }
- if (a[i] < a[j]) {
- right[i][j]++;
- }
- }
- }
- long long ans = 0;
- for (ll i = 0; i < n; i++) {
- for (ll j = i + 1; j < n; j++) {
- if (j + 1 < n && i - 1 >= 0) {
- ans += left[i][j + 1] * right[i - 1][j];
- }
- }
- }
- cout << ans <<'\n';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement