제출 #659701

#제출 시각아이디문제언어결과실행 시간메모리
659701Sohsoh84Diversity (CEOI21_diversity)C++17
0 / 100
1 ms340 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; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); 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; for (int i = 0; i < MAXN; i++) if (cnt[i]) vec.push_back(cnt[i]); int m = vec.size(); shuffle(all(vec), rng); ll s = 0, ans = 0, j = 0; for (int i = 1; i <= m; i++) { if (j < s - j) { j += vec[i - 1]; ans += j * (n - j); } else ans += (s - j) * (n - s + j); s += vec[i - 1]; } 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...