Submission #1185181

#TimeUsernameProblemLanguageResultExecution timeMemory
1185181cpdreamerDiversity (CEOI21_diversity)C++20
0 / 100
7087 ms1736 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define P pair
#define F first
#define all(v) v.begin(),v.end()
#define V vector
#define pb push_back
#define S second
void file() {
    freopen("input.txt.txt", "r", stdin);
    freopen("output.txt.txt", "w", stdout);
}

V<int>binary_rep(int n){
    V<int>vp;
    for(int i=0;i<30;i++){
        if(((1<<i)&n)!=0)
            vp.pb(1);
        else
            vp.pb(0);
    }
    return vp;
}
void solve() {
    int n;
    cin>>n;
    int q;
    cin>>q;
    int A[n];
    map<int,int>mp;
    for(int i=0;i<n;i++){
        cin>>A[i];
        mp[A[i]]++;
    }
    V<P<int,int>>vp;
    for(auto u:mp){
        vp.pb({u.S,u.F});
    }
    ll c=LLONG_MAX;
    sort(all(vp));
    while(next_permutation(all(vp))) {
        V<int> b;
        for (int j = 0; j < vp.size(); j++) {
            P<int, int> u = vp[j];
            for (int i = 0; i < u.F; i++) {
                b.pb(u.S);
            }
        }
        mp.clear();
        ll s = 0;
        ll ans = 0;
        for (int i = 0; i < n; i++) {
            s -= mp[b[i]];
            mp[b[i]] = i + 1;
            s += mp[b[i]];
            ans += s;
        }
        c=min(c,ans);
    }
    cout<<c<<endl;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    //file();
    solve();
}

Compilation message (stderr)

diversity.cpp: In function 'void file()':
diversity.cpp:11:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |     freopen("input.txt.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diversity.cpp:12:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     freopen("output.txt.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...