Submission #531231

#TimeUsernameProblemLanguageResultExecution timeMemory
531231azberjibiouDiversity (CEOI21_diversity)C++17
64 / 100
38 ms5380 KiB
#include <bits/stdc++.h>
#define gibon ios::sync_with_stdio(false); cin.tie(0);
#define fir first
#define sec second
#define pdd pair<double, double>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define pmax pair<__int128, __int128>
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
typedef long long ll;
using namespace std;
int dx[4]={0, 1, 0, -1}, dy[4]={1, 0, -1 , 0};
const int mxN=300003;
const int mxM=1010;
const int mxK=105;
const int MOD=1000000007;
const ll INF=1e18;
const ll P1=1000000007;
const ll P2=1000000009;
int N, Q;
int cnt[mxN];
ll ans;
vector <ll> v;
int main()
{
    gibon
    cin >> N >> Q;
    for(int i=1;i<=N;i++)
    {
        int a;
        cin >> a;
        cnt[a]++;
    }
    for(int i=0;i<mxN;i++)  if(cnt[i]!=0)
    {
        v.push_back(cnt[i]);
    }
    sort(v.begin(), v.end());
    ans=(ll)N*(N+1)/2*(v.size());
    ll cnt1=0, cnt2=0;
    for(int i=0;i+1<v.size();i++)
    {
        int ele=v[i];
        if(cnt1>cnt2)   swap(cnt1, cnt2);
        cnt1+=ele;
        ans-=cnt1*(cnt1+1)/2+(N-cnt1)*(N-cnt1+1)/2;
    }
    cout << ans;
}

Compilation message (stderr)

diversity.cpp: In function 'int main()':
diversity.cpp:43:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for(int i=0;i+1<v.size();i++)
      |                 ~~~^~~~~~~~~
#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...