Submission #1333298

#TimeUsernameProblemLanguageResultExecution timeMemory
1333298ricardsjansonsGroup Photo (JOI21_ho_t3)C++20
12 / 100
5093 ms1424 KiB
#include <bits/stdc++.h>
using namespace std;

int f(set<pair<int,int>>s,int l,int r){
    int x=0;
    for(int i=l;i<=r;i++){
        for(int j=i+1;j<=r;j++){
            if(s.count({i,j})){
                s.erase({i,j});
                x--;
            }else{
                s.insert({i,j});
                x++;
            }
        }
    }
    return x;
}



int main(){
    ios_base::sync_with_stdio(0);cin.tie(0);
    int n;cin>>n;
    int a[n+1];
    for(int i=1;i<=n;i++)cin>>a[i];
    set<pair<int,int>>s;
    for(int i=1;i<=n;i++){
        for(int j=1;j<n;j++){
            if(a[j+1]<a[j]){
                swap(a[j],a[j+1]);
                s.insert({a[j],a[j+1]});
            }
        }
    }
    int dp[n];
    dp[0]=s.size();
    for(int i=1;i<=n;i++){
        dp[i]=dp[i-1];
        for(int j=0;j<i-1;j++){
            dp[i]=min(dp[i],dp[j]+f(s,j+1,i));
        }
    }
    cout<<dp[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...