Submission #23599641


Source Code Expand

#include <bits/stdc++.h>

#define rep(i, n) for (auto i = 0; i < n; ++i)
#define ALL(a) a.begin(), a.end()

using namespace std;

using ll = long long int;
using Graph = vector<vector<int>>;

const int MOD_NUM = 1e9 + 7;

int main() {
    // Input
    int N;
    cin >> N;
    vector<int> A(N);
    rep(i, N) cin >> A[i];

    // Process
    map<int, int> a_counts;
    vector<int> counts(N);
    for (int i = N - 1; i >= 0; i--) {
        if (a_counts.find(A[i]) == a_counts.end()) {
            a_counts[A[i]] = 0;
        } else {
            a_counts[A[i]]++;
        }
        counts[i] = a_counts[A[i]];
    }

    ll ans = 0;
    rep(i, N) ans += N - i - 1 - counts[i];

    // Output
    cout << ans << endl;

    return 0;
}

Submission Info

Submission Time
Task C - Swappable
User Koreander
Language C++ (GCC 9.2.1)
Score 300
Code Size 773 Byte
Status AC
Exec Time 224 ms
Memory 19580 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 14
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt
Case Name Status Exec Time Memory
sample_01.txt AC 8 ms 3512 KiB
sample_02.txt AC 2 ms 3528 KiB
sample_03.txt AC 3 ms 3428 KiB
test_00.txt AC 3 ms 3340 KiB
test_01.txt AC 3 ms 3448 KiB
test_02.txt AC 45 ms 3496 KiB
test_03.txt AC 143 ms 10140 KiB
test_04.txt AC 73 ms 4860 KiB
test_05.txt AC 44 ms 3756 KiB
test_06.txt AC 30 ms 3668 KiB
test_07.txt AC 224 ms 19580 KiB
test_08.txt AC 104 ms 5436 KiB
test_09.txt AC 97 ms 5388 KiB
test_10.txt AC 135 ms 5384 KiB