Submission #1104059

#TimeUsernameProblemLanguageResultExecution timeMemory
1104059Champ_NamanGroup Photo (JOI21_ho_t3)C++17
5 / 100
5041 ms460 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define nl '\n'

inline void solve(){
	int n;
	cin>>n;
	int a[n];
	for(int i=0; i<n; i++) cin>>a[i];

	vector<int> v(n);
	iota(v.begin(), v.end(), 1);

	int ans = 1e18;
	do{
		auto b = v;
		bool tf = true;
		for(int i=0; i<n-1; i++){
			if(b[i] >= b[i+1]+2) tf = false;
		}
		if(!tf) continue;

		int subans = 0;
		for(int i=0; i<n; i++){
			if(a[i] == b[i]) continue;

			for(int j=i+1; j<n; j++){
				if(a[i] != b[j]) continue;

				for(int k=j; k>i; k--){
					swap(b[k], b[k-1]);
					subans++;
					if(subans >= ans) break;
				}
				break;
			}
			if(subans >= ans) break;
		}

		ans = min(ans, subans);
	}while(next_permutation(v.begin(), v.end()));

	cout<<ans<<nl;
}

signed main(){
	ios_base::sync_with_stdio(0);
	cin.tie(NULL);cout.tie(NULL);

	int t = 1;
	//cin>>t;
	while(t--) solve();

	return 0;
}
#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...