1 条题解

  • 1
    @ 2025-5-30 13:23:29
    #include <bits/stdc++.h>
    const int N = 1000010;
    using namespace std;
    int a[N], pre[N], cnt[N];
    long long ans = 0;
     
    int main() 
    {
        int n;
        cin >> n;
        for (int i = 1; i <= n; i++) cin >> a[i];
        for (int i = 1; i <= n; i++) 
        {
            pre[i] = pre[i-1];
            cnt[a[i]]++;
            if (cnt[a[i]] == 1) pre[i]++;
        }
        memset(cnt, 0, sizeof cnt);
    
        for (int i = n; i >= 1; i--) 
        {
            cnt[a[i]]++;
            if (cnt[a[i]] == 2) 
            {
                ans += pre[i-1];
            }
        }
        for (int i = 1; i <= n; i++) 
        {
            if (cnt[i] >= 3) ans--;
        }
        cout << ans << '\n';
    }
    
    • 1

    信息

    ID
    5555
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    2
    上传者