Submission #659704

#TimeUsernameProblemLanguageResultExecution timeMemory
659704Sohsoh84Diversity (CEOI21_diversity)C++17
64 / 100
862 ms3776 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; #define all(x) (x).begin(),(x).end() #define X first #define Y second #define sep ' ' #define endl '\n' #define debug(x) cerr << #x << ": " << x << endl; const ll MAXN = 1e6 + 10; const ll INF = 4e18; int n, q, cnt[MAXN], A[MAXN]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> q; for (int i = 1; i <= n; i++) { int A[i]; cin >> A[i]; cnt[A[i]]++; } vector<int> vec = {0}; for (int i = 0; i < MAXN; i++) if (cnt[i]) vec.push_back(cnt[i]); int m = vec.size() - 1; sort(all(vec)); ll s = 0, ans = 0, j = 0; for (int i = 1; i <= m; i++) { if (i & 1) { j += vec[i]; ans += j * (n - j); // n * j - j * j } else ans += (s - j) * (n - s + j); s += vec[i]; } cout << ans + 1ll * n * (n + 1) / 2 << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...