Submission #1186766

#TimeUsernameProblemLanguageResultExecution timeMemory
1186766UnforgettableplDiversity (CEOI21_diversity)C++20
38 / 100
7091 ms9656 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()); int cost = 0; swap(arr,newarr); int n = arr.size(); int t = 0; deque<int> ans; for(int i=0;i<n;i++){ int prevCost = 0; int nextCost = 0; for(int x=0;x<ans.size();x++){ prevCost+=ans[x]*(x+1); nextCost+=ans[x]*(ans.size()-x); } if(prevCost<nextCost){ ans.emplace_front(arr[i]); } else { ans.emplace_back(arr[i]); swap(nextCost,prevCost); } cost+=prevCost*arr[i]; cost+=t*arr[i]; cost+=((arr[i]+1ll)*arr[i])/2ll; t+=arr[i]; } cout << cost << '\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...