제출 #659700

#제출 시각아이디문제언어결과실행 시간메모리
659700Sohsoh84Diversity (CEOI21_diversity)C++17
64 / 100
881 ms5728 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 (j < s - j) { j += vec[i]; ans += j * (n - 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...