Submission #1215632

#TimeUsernameProblemLanguageResultExecution timeMemory
1215632KindaGoodGamesDiversity (CEOI21_diversity)C++20
0 / 100
7092 ms412 KiB
#pragma GCC optimize("O3, unroll-loops,Ofast")
#include<bits/stdc++.h>

#define int long long
using namespace std;

int INF = numeric_limits<int>::max()/2;
int32_t main() {
    int n,q;
    cin>> n >> q;

    vector<int>arr(n);
    set<int> occ;
    for(int i = 0; i < n; i++){
        cin >> arr[i];
        occ.insert(arr[i]);
    }
    vector<int> sorted(occ.begin(),occ.end());

    map<int,int> toInd;
    for(int i = 0; i < sorted.size(); i++){
        toInd[sorted[i]] = i;
    }
    for(int i = 0; i < n; i++){
        arr[i] = toInd[arr[i]];
    }
    

    while(q--){
        int l,r;
        cin >> l >> r;
        l--;r--;

        vector<int> cur;
        for(int i = l; i <= r; i++){
            cur.push_back(arr[i]);
        } 
        
        sort(cur.begin(),cur.end()); 

        int mi = INF;
        do{
            
            int sum = 0;
            for(int i = 0; i < cur.size(); i++){
                vector<bool> occ(n);
                int cnt = 0;
                for(int j = i; j < cur.size(); j++){ 
                        if(!occ[cur[j]])cnt++;
                        occ[cur[j]] = true; 
                    sum += cnt;
                }
            }
            mi = min(mi,sum);
        }while(next_permutation(cur.begin(),cur.end()));
        cout << mi << endl;
    }
}

Compilation message (stderr)

diversity.cpp:1:46: warning: bad option '-f unroll-loops' to pragma 'optimize' [-Wpragmas]
    1 | #pragma GCC optimize("O3, unroll-loops,Ofast")
      |                                              ^
diversity.cpp:8:14: warning: bad option '-f unroll-loops' to attribute 'optimize' [-Wattributes]
    8 | int32_t main() {
      |              ^
#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...