Submission #967558

#TimeUsernameProblemLanguageResultExecution timeMemory
967558antonDiversity (CEOI21_diversity)C++17
38 / 100
7077 ms12996 KiB
#include<bits/stdc++.h>

using namespace std;
#define int long long
#define pii pair<int, int>


int arithmetic(int v){
    return v*(v+1)/2;
}
signed main(){
    cin.tie(NULL);
    ios_base::sync_with_stdio(false);
    int n, q;
    cin>>n>>q;
    vector<int> v(n);
    map<int, int> oc;
    for(int i = 0; i<n; i++){
        cin>>v[i];
        oc[v[i]] ++;
    }

    deque<int> dq;
    vector<pii> groups;
    for(auto e: oc){
        groups.push_back(e);
    }
    auto cmp =[&](pii& a, pii& b){
        return a.second>b.second;
    };
    sort(groups.begin(), groups.end(), cmp);


    int res= 0;
    for(int i = 0; i<groups.size(); i++){
        if(i%2 == 0){
            dq.push_back(groups[i].second);
        }
        else{
            dq.push_front(groups[i].second);
        }
        res += arithmetic(groups[i].second);
    }


    for(int dist= 1; dist<dq.size(); dist++){
        for(int i =0; i<dq.size()-dist; i++){
            res += (dist+1)*dq[i] * dq[i + dist];
        }
    }
    for(int i = 0; i<q; i++){
        int a, b;
        cin>>a>>b;
        cout<<res<<endl;
    }

}

Compilation message (stderr)

diversity.cpp: In function 'int main()':
diversity.cpp:35:21: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |     for(int i = 0; i<groups.size(); i++){
      |                    ~^~~~~~~~~~~~~~
diversity.cpp:46:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::deque<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |     for(int dist= 1; dist<dq.size(); dist++){
      |                      ~~~~^~~~~~~~~~
diversity.cpp:47:24: warning: comparison of integer expressions of different signedness: 'long long int' and 'long long unsigned int' [-Wsign-compare]
   47 |         for(int i =0; i<dq.size()-dist; 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...