제출 #1186756

#제출 시각아이디문제언어결과실행 시간메모리
1186756UnforgettableplDiversity (CEOI21_diversity)C++20
22 / 100
1709 ms2632 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int modulo = 1e9+7; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N,Q; cin >> N >> Q; vector<int> arr(N); for(int&i:arr)cin>>i; vector<int> newarr; { int c=0; map<int,int> comp; for(int&i:arr){ if(!comp.count(i)){ comp[i]=c++; newarr.emplace_back(0); } newarr[comp[i]]++; } } sort(newarr.rbegin(),newarr.rend()); list<int> newarrr; auto test = [&](){ int ans = 0; int curr = 0; for(int&i:newarrr){ int L = curr+1; int R = curr+i; curr = R; ans+=R*(N+1ll) - L*L + ((L+1ll)*L - R*(R+1ll))/2ll; } return ans; }; int minima = 1e17; swap(arr,newarr); int n = arr.size(); for(int mask=0;mask<(1<<(n-1));mask++){ newarrr.clear(); newarrr.emplace_back(arr[0]); for(int bit=0;bit<n-1;bit++){ if(mask&(1<<bit))newarrr.emplace_back(arr[bit+1]); else newarrr.emplace_front(arr[bit+1]); } minima = min(minima,test()); } cout << minima << '\n'; }
#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...