Submission #857479

#TimeUsernameProblemLanguageResultExecution timeMemory
857479lbadea1000W (RMI18_w)C++17
20 / 100
86 ms3548 KiB
#include <bits/stdc++.h>

using namespace std;

const int NMAX = 3e5 + 5;
const int MOD = 1e9 + 7;
int v[NMAX];

int main() {
    int n;
    cin >> n;
    for(int i = 0; i < n; i++)
        cin >> v[i];
    sort(v, v + n);
    int cnt1 = 0;
    int i = 0;
    while(i < n && v[i] == v[0]) {
        i++;
        cnt1++;
    }
    int cnt2 = 0;
    while(i < n && v[i] == v[n - 1]) {
        i++;
        cnt2++;
    }
    if(cnt1 + cnt2 == n)
        cout << 1LL * (cnt2 - 2) * (cnt2 - 1) / 2 % MOD * (cnt1 - 1) % MOD;
    else {
        int ans = 0;
        for(int a = 2; a <= n - 3; a++) {
            ans = (ans + (1LL * (n - a - 2) * (n - a - 1) / 2 % MOD)) % MOD;
        }
        cout << ans;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...