#include <bits/stdc++.h>
#include <stdio.h>
#define __Shibae__ signed main()
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define fiopen(Path) freopen(Path".INP", "r", stdin); freopen(Path".OUT", "w", stdout);
#define fipen(Path) freopen(Path".INP", "r", stdin);
#define sz(s) (int)s.size()
#define all(x) x.begin(), x.end()
#define maxHeap priority_queue<int>
#define minHeap priority_queue<int, vector<int>, greater<int>>
#define getBit(x, k) (((x) >> (k)) & 1)
#define MASK(i) (1LL << (i))
#define SQR(x) (1LL * ((x) * (x)))
#define db double
#define ld long double
#define ui unsigned int
#define ll long long
#define ii pair<int, int>
#define pli pair<ll, int>
#define pil pair<int, ll>
#define pll pair<ll, ll>
#define fi first
#define se second
#define FOR(i, a, b) for(int i = a, _b = b; i <= _b; i += 1)
#define FOD(i, a, b) for(int i = a, _b = b; i >= _b; i -= 1)
#define REP(i, a) for(int i = 0, _a = a; i < _a; i++)
#define pb push_back
#define fau(u, a) for(auto &u : a)
#define debug return cout << "debug", void();
using namespace std;
const ll mod = 1e9 + 7;
const int INF = 1e9 + 7;
const ll INFLL = (ll)2e18 + 7LL;
const ld PI = acos(-1);
const int MAX = 5e5+5;
const int dx[] = {1, -1, 0, 0, -1, 1, 1, -1};
const int dy[] = {0, 0, 1, -1, -1, -1, 1, 1};
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
ll Rand(ll l, ll r)
{
return uniform_int_distribution<ll>(l, r)(rd);
}
template<class SHIBA, class ENGINE>
bool minimize(SHIBA &x, const ENGINE y)
{
if(x > y)
{
x = y;
return true;
}
else return false;
}
template<class SHIBA, class ENGINE>
bool maximize(SHIBA &x, const ENGINE y)
{
if(x < y)
{
x = y;
return true;
}
else return false;
}
/* Template by: Nguyen Nhat Anh from Luong Van Chanh High School for the gifted */
/* From Min Tuoi with love */
/** TRY HARD **/
/** ORZ **/
/* -----------------[ MAIN CODE ]----------------- */
int n;
int a[MAX];
vector<int> arr;
struct FenwickTree
{
int bit[MAX];
void update(int i, int k)
{
for (i; i <= n; i += i & -i) bit[i] += k;
}
int get(int i)
{
int res = 0;
for (; i; i -= i & -i) res += bit[i];
return res;
}
}pre, suf;
void input()
{
cin >> n;
FOR(i, 1, n)
{
cin >> a[i];
arr.pb(a[i]);
}
}
void solve()
{
sort(all(arr));
arr.resize(unique(all(arr)) - arr.begin());
FOR(i, 1, n) a[i] = lower_bound(all(arr), a[i]) - arr.begin() + 1;
pre.update(a[1], 1);
FOR(i, 2, n) suf.update(a[i], 1);
ll res = 0;
FOR(i, 2, n-1)
{
suf.update(a[i], -1);
res += 1LL * pre.get(a[i]-1) * suf.get(a[i] - 1);
pre.update(a[i], 1);
}
cout << res;
}
__Shibae__
{
FOR(_, 1, 100)
{
ofstream out("dooki.inp");
int n = Rand(1, 100);
out << n << "\n";
FOR(i, 1, n) out << Rand(1, 1e9) << " ";
map<ii, int> map;
/* Sinh Cay
FOR(i, 2, n)
// {
// int u = Rand(1, i-1);
// out << u << " " << i << "\n";
// mp[{u, i}] = mp[{i, u}] = 1;
// }
// THem cai nay thi la sinh do thi lien thong n dinh
// FOR(i, 1, m-n+1)
// {
// int u = Rand(1, n-1);
// int v = Rand(u+1, n);
// while(mp[{u, v}] == 1)
// {
// u = Rand(1, n-1);
// v = Rand(u+1, n);
// }
//
// out << u << " " << v << "\n";
// mp[{u, v}] = mp[{v, u}] = 1;
// }
*/
// FOR(i, 1, m-n+1) // sinh do thi backy
// {
// int u = Rand(1, n-1);
// int v = Rand(u+1, n);
// while(mp[{u, v}] == 1)
// {
// u = Rand(1, n-1);
// v = Rand(u+1, n);
// }
//
// out << u << " " << v << "\n";
// mp[{u, v}] = mp[{v, u}] = 1;
// }
out.close();
system("f.exe");
system("trau.exe");
if (system("fc trau.out dooki.out"))
{
return 0;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxzdGRpby5oPgoKI2RlZmluZSBfX1NoaWJhZV9fICAgICAgc2lnbmVkIG1haW4oKQojZGVmaW5lIElPUyAgICAgICAgICAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiNkZWZpbmUgZmlvcGVuKFBhdGgpICAgIGZyZW9wZW4oUGF0aCIuSU5QIiwgInIiLCBzdGRpbik7IGZyZW9wZW4oUGF0aCIuT1VUIiwgInciLCBzdGRvdXQpOwojZGVmaW5lIGZpcGVuKFBhdGgpICAgICBmcmVvcGVuKFBhdGgiLklOUCIsICJyIiwgc3RkaW4pOwojZGVmaW5lIHN6KHMpICAgICAgICAgICAoaW50KXMuc2l6ZSgpCiNkZWZpbmUgYWxsKHgpICAgICAgICAgIHguYmVnaW4oKSwgeC5lbmQoKQojZGVmaW5lIG1heEhlYXAgICAgICAgICBwcmlvcml0eV9xdWV1ZTxpbnQ+CiNkZWZpbmUgbWluSGVhcCAgICAgICAgIHByaW9yaXR5X3F1ZXVlPGludCwgdmVjdG9yPGludD4sIGdyZWF0ZXI8aW50Pj4KI2RlZmluZSBnZXRCaXQoeCwgaykgICAgKCgoeCkgPj4gKGspKSAmIDEpCiNkZWZpbmUgTUFTSyhpKSAgICAgICAgICgxTEwgPDwgKGkpKQojZGVmaW5lIFNRUih4KSAgICAgICAgICAoMUxMICogKCh4KSAqICh4KSkpCiNkZWZpbmUgZGIgICAgICAgICAgICAgIGRvdWJsZQojZGVmaW5lIGxkICAgICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHVpICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQKI2RlZmluZSBsbCAgICAgICAgICAgICAgbG9uZyBsb25nCiNkZWZpbmUgaWkgICAgICAgICAgICAgIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgcGxpICAgICAgICAgICAgIHBhaXI8bGwsIGludD4KI2RlZmluZSBwaWwgICAgICAgICAgICAgcGFpcjxpbnQsIGxsPgojZGVmaW5lIHBsbCAgICAgICAgICAgICBwYWlyPGxsLCBsbD4KI2RlZmluZSBmaSAgICAgICAgICAgICAgZmlyc3QKI2RlZmluZSBzZSAgICAgICAgICAgICAgc2Vjb25kCgojZGVmaW5lIEZPUihpLCBhLCBiKSAgICBmb3IoaW50IGkgPSBhLCBfYiA9IGI7IGkgPD0gX2I7IGkgKz0gMSkKI2RlZmluZSBGT0QoaSwgYSwgYikgICAgZm9yKGludCBpID0gYSwgX2IgPSBiOyBpID49IF9iOyBpIC09IDEpCiNkZWZpbmUgUkVQKGksIGEpICAgICAgIGZvcihpbnQgaSA9IDAsIF9hID0gYTsgaSA8IF9hOyBpKyspCiNkZWZpbmUgcGIgICAgICAgICAgICAgIHB1c2hfYmFjawojZGVmaW5lIGZhdSh1LCBhKSAgICAgICBmb3IoYXV0byAmdSA6IGEpCiNkZWZpbmUgZGVidWcgICAgICAgICAgIHJldHVybiBjb3V0IDw8ICJkZWJ1ZyIsIHZvaWQoKTsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBsbCBtb2QgPSAxZTkgKyA3Owpjb25zdCBpbnQgSU5GID0gMWU5ICsgNzsKY29uc3QgbGwgSU5GTEwgPSAobGwpMmUxOCArIDdMTDsKY29uc3QgbGQgUEkgPSBhY29zKC0xKTsKY29uc3QgaW50IE1BWCA9IDVlNSs1OwoKY29uc3QgaW50IGR4W10gPSB7MSwgLTEsIDAsIDAsIC0xLCAxLCAxLCAtMX07CmNvbnN0IGludCBkeVtdID0gezAsIDAsIDEsIC0xLCAtMSwgLTEsIDEsIDF9OwoKbXQxOTkzNyByZChjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwoKbGwgUmFuZChsbCBsLCBsbCByKQp7CiAgICByZXR1cm4gdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGxsPihsLCByKShyZCk7Cn0KCnRlbXBsYXRlPGNsYXNzIFNISUJBLCBjbGFzcyBFTkdJTkU+CiAgICBib29sIG1pbmltaXplKFNISUJBICZ4LCBjb25zdCBFTkdJTkUgeSkKICAgIHsKICAgICAgICBpZih4ID4geSkKICAgICAgICB7CiAgICAgICAgICAgIHggPSB5OwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CiAgICB9CnRlbXBsYXRlPGNsYXNzIFNISUJBLCBjbGFzcyBFTkdJTkU+CiAgICBib29sIG1heGltaXplKFNISUJBICZ4LCBjb25zdCBFTkdJTkUgeSkKICAgIHsKICAgICAgICBpZih4IDwgeSkKICAgICAgICB7CiAgICAgICAgICAgIHggPSB5OwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7CiAgICB9CgoKLyogVGVtcGxhdGUgYnk6IE5ndXllbiBOaGF0IEFuaCBmcm9tIEx1b25nIFZhbiBDaGFuaCBIaWdoIFNjaG9vbCBmb3IgdGhlIGdpZnRlZCAqLwovKiBGcm9tIE1pbiBUdW9pIHdpdGggbG92ZSAqLwogICAgICAgIC8qKiAgICAgICBUUlkgSEFSRCAgICAgICAgKiovCiAgICAgICAgLyoqICAgICAgICAgIE9SWiAgICAgICAgICAqKi8KCi8qIC0tLS0tLS0tLS0tLS0tLS0tWyBNQUlOIENPREUgXS0tLS0tLS0tLS0tLS0tLS0tICovCgppbnQgbjsKaW50IGFbTUFYXTsKdmVjdG9yPGludD4gYXJyOwoKc3RydWN0IEZlbndpY2tUcmVlCnsKICAgIGludCBiaXRbTUFYXTsKCiAgICB2b2lkIHVwZGF0ZShpbnQgaSwgaW50IGspCiAgICB7CiAgICAgICAgZm9yIChpOyBpIDw9IG47IGkgKz0gaSAmIC1pKSBiaXRbaV0gKz0gazsKICAgIH0KCiAgICBpbnQgZ2V0KGludCBpKQogICAgewogICAgICAgIGludCByZXMgPSAwOwogICAgICAgIGZvciAoOyBpOyBpIC09IGkgJiAtaSkgcmVzICs9IGJpdFtpXTsKICAgICAgICByZXR1cm4gcmVzOwogICAgfQp9cHJlLCBzdWY7Cgp2b2lkIGlucHV0KCkKewogICAgY2luID4+IG47CiAgICBGT1IoaSwgMSwgbikKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBhcnIucGIoYVtpXSk7CiAgICB9Cn0KCnZvaWQgc29sdmUoKQp7CiAgICBzb3J0KGFsbChhcnIpKTsKICAgIGFyci5yZXNpemUodW5pcXVlKGFsbChhcnIpKSAtIGFyci5iZWdpbigpKTsKICAgIEZPUihpLCAxLCBuKSBhW2ldID0gbG93ZXJfYm91bmQoYWxsKGFyciksIGFbaV0pIC0gYXJyLmJlZ2luKCkgKyAxOwogICAgcHJlLnVwZGF0ZShhWzFdLCAxKTsKICAgIEZPUihpLCAyLCBuKSBzdWYudXBkYXRlKGFbaV0sIDEpOwoKICAgIGxsIHJlcyA9IDA7CgogICAgRk9SKGksIDIsIG4tMSkKICAgIHsKICAgICAgICBzdWYudXBkYXRlKGFbaV0sIC0xKTsKICAgICAgICByZXMgKz0gMUxMICogcHJlLmdldChhW2ldLTEpICogc3VmLmdldChhW2ldIC0gMSk7CiAgICAgICAgcHJlLnVwZGF0ZShhW2ldLCAxKTsKICAgIH0KICAgIGNvdXQgPDwgcmVzOwp9CgpfX1NoaWJhZV9fCnsKICAgIEZPUihfLCAxLCAxMDApCiAgICB7CiAgICAgICAgb2ZzdHJlYW0gb3V0KCJkb29raS5pbnAiKTsKCiAgICBpbnQgbiA9IFJhbmQoMSwgMTAwKTsKCiAgICBvdXQgPDwgbiA8PCAiXG4iOwogICAgRk9SKGksIDEsIG4pIG91dCA8PCBSYW5kKDEsIDFlOSkgPDwgIiAiOwoKICAgIG1hcDxpaSwgaW50PiBtYXA7CgovKiAgU2luaCBDYXkKICAgIEZPUihpLCAyLCBuKQovLyAgICB7Ci8vICAgICAgICBpbnQgdSA9IFJhbmQoMSwgaS0xKTsKLy8gICAgICAgIG91dCA8PCB1IDw8ICIgIiA8PCBpIDw8ICJcbiI7Ci8vICAgICAgICBtcFt7dSwgaX1dID0gbXBbe2ksIHV9XSA9IDE7Ci8vICAgIH0KLy8gICAgIFRIZW0gY2FpIG5heSB0aGkgbGEgc2luaCBkbyB0aGkgbGllbiB0aG9uZyBuIGRpbmgKLy8gICAgRk9SKGksIDEsIG0tbisxKQovLyAgICB7Ci8vICAgICAgICBpbnQgdSA9IFJhbmQoMSwgbi0xKTsKLy8gICAgICAgIGludCB2ID0gUmFuZCh1KzEsIG4pOwovLyAgICAgICAgd2hpbGUobXBbe3UsIHZ9XSA9PSAxKQovLyAgICAgICAgewovLyAgICAgICAgICAgIHUgPSBSYW5kKDEsIG4tMSk7Ci8vICAgICAgICAgICAgdiA9IFJhbmQodSsxLCBuKTsKLy8gICAgICAgIH0KLy8KLy8gICAgICAgIG91dCA8PCB1IDw8ICIgIiA8PCB2IDw8ICJcbiI7Ci8vICAgICAgICBtcFt7dSwgdn1dID0gbXBbe3YsIHV9XSAgPSAxOwovLyAgICB9CiovCgovLyAgICBGT1IoaSwgMSwgbS1uKzEpIC8vIHNpbmggZG8gdGhpIGJhY2t5Ci8vICAgIHsKLy8gICAgICAgIGludCB1ID0gUmFuZCgxLCBuLTEpOwovLyAgICAgICAgaW50IHYgPSBSYW5kKHUrMSwgbik7Ci8vICAgICAgICB3aGlsZShtcFt7dSwgdn1dID09IDEpCi8vICAgICAgICB7Ci8vICAgICAgICAgICAgdSA9IFJhbmQoMSwgbi0xKTsKLy8gICAgICAgICAgICB2ID0gUmFuZCh1KzEsIG4pOwovLyAgICAgICAgfQovLwovLyAgICAgICAgb3V0IDw8IHUgPDwgIiAiIDw8IHYgPDwgIlxuIjsKLy8gICAgICAgIG1wW3t1LCB2fV0gPSBtcFt7diwgdX1dICA9IDE7Ci8vICAgIH0KCgogICAgb3V0LmNsb3NlKCk7CgogICAgc3lzdGVtKCJmLmV4ZSIpOwogICAgc3lzdGVtKCJ0cmF1LmV4ZSIpOwoKICAgIGlmIChzeXN0ZW0oImZjIHRyYXUub3V0IGRvb2tpLm91dCIpKQogICAgewogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIH0KCgogICAgcmV0dXJuIDA7Cn0K