Submission #349419

# Submission time Handle Problem Language Result Execution time Memory
349419 2021-01-17T15:00:17 Z Sho10 Cheerleaders (info1cup20_cheerleaders) C++17
26 / 100
2000 ms 40684 KB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10
#define ll long long 
#define double long double
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#define aint(a) (a).begin(), (a).end()
#define f first
#define s second
#define pb push_back
#define mp make_pair
#define pi pair
#define rc(s) return cout<<s,0
#define endl '\n'
#define mod 1000000007
#define PI 3.14159265359
#define MAXN 100005
#define INF 1000000005
#define LINF 1000000000000000005ll
#define CODE_START  ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
ll n,mn=LINF,res=LINF;
vector<ll>ans;
vector<ll>y;
vector<ll>a;
map<vector<ll>,ll>viz;
void solve(ll step,ll x){
	y.pb(step);
vector<ll>st;
st=a;
if(step==1){
	for(ll i=0;i<n/2;i++)
	{
		swap(a[i],a[n/2+i]);
	}
if(viz[a]==1){
a=st;
y.pop_back();
return;
}
}else if(step==2){
	vector<ll>nw;
	for(ll i=0;i<n;i++)
	{
		if(i%2==0){
			nw.pb(a[i]);
		}
	}
	for(ll i=0;i<n;i++)
	{
		if(i%2){
			nw.pb(a[i]);
		}
	}
	a=nw;
	if(viz[a]==1){
		a=st;
		y.pop_back();
		return;
	}
}
ll inv=0;
for(ll i=0;i<n;i++)
{
	for(ll j=i+1;j<n;j++)
	{
		if(a[j]<a[i]){
			inv++;
		}
	}
}
if(inv<mn){
	mn=inv;
	res=x;
	ans=y;
}else if(inv==mn){
	res=min(res,x);
	ans=y;
}
viz[a]=1;
solve(1,x+1);
solve(2,x+1);
a=st;
y.pop_back();
return;
}
int32_t main(){
CODE_START;
cin>>n;
n=(1<<n);
for(ll i=1;i<=n;i++)
{
	ll x;
	cin>>x;
	a.pb(x);
}
ll cnt=0;
for(ll i=0;i<n;i++)
{
	for(ll j=i+1;j<n;j++)
	{
		if(a[j]<a[i]){
			cnt++;
		}
	}
}
mn=cnt;
viz[a]=1;
solve(1,1);
solve(2,1);
cout<<mn<<endl;
for(auto it : ans){
	cout<<it;
}
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 364 KB Correct!
2 Correct 1 ms 364 KB Correct!
3 Correct 1 ms 364 KB Correct!
4 Correct 1 ms 364 KB Correct!
# Verdict Execution time Memory Grader output
1 Correct 2 ms 748 KB Correct!
2 Correct 10 ms 2156 KB Correct!
3 Correct 11 ms 2120 KB Correct!
4 Correct 12 ms 2156 KB Correct!
# Verdict Execution time Memory Grader output
1 Execution timed out 2084 ms 40684 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2074 ms 3856 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2075 ms 1516 KB Time limit exceeded
2 Halted 0 ms 0 KB -