Submission #9574857


Source Code Expand

//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx") 
#include <bits/stdc++.h>
#include <ext/pb_ds/priority_queue.hpp>
using namespace std;
using namespace __gnu_pbds;
#define F(i,a,b) for(int i=(a);i<=(b);++i)
#define F2(i,a,b) for(int i=(a);i<(b);++i)
#define dF(i,a,b) for(int i=(a);i>=(b);--i)
#define dF2(i,a,b) for(int i=(a);i>(b);--i)
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define Debug debug("Passing [%s] in LINE %d\n",__FUNCTION__,__LINE__)
#define INF 999999
#define INFll 0x3f3f3f3f3f3f3f3f
#define y0 _lxybz_
#define y1 _ljmnzyzhhhoscartxdy_
typedef long double ld;
typedef long long ll;
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define sz(x) (int)x.size()
#define all(x) begin(x), end(x)
#define rsz resize
#define lo(x) ((x)&(-(x)))
#define trav(a, x) for (auto &a : x)
//typedef vector<int> vi;
typedef vector<ld> vd;
typedef vector<ll> vl;
const ld Pi = 4*atan((ld)1);
template<class T> void chmin(T &a,const T&b) { a = min(a, b); }
template<class T> void chmax(T &a,const T&b) { a = max(a, b); }
namespace IO{
template<class T> inline void read(T&ret)
{
	ret=0; int f=1; char c=getchar();
	while(c<48||c>57){
		if(c=='-')f=-1;
		c=getchar();
	}
	while(c>=48 && c<=57)ret=ret*10+c-48,c=getchar();
	ret*=f;
}
template<class T> inline void prin(const T&ret)
{
	if(!ret){putchar(48);return;} static T o; o=ret;
	if(o<0){putchar('-');o=-o;}
	static int op[25],tt; tt=0;
	while(o){
		op[++tt]=o%10;
		o/=10;
	}
	for(int i=tt;i;--i)putchar(op[i]+48);
}
template<class T> inline void pri_(const T&ret)
{
	prin(ret);putchar(' ');
}
template<class T> inline void priE(const T&ret)
{
	prin(ret);putchar('\n');
}
}
using namespace IO;

#define N 300005
//#define MO 
int h[N][20],vi[N][20],O,n,a[20],b[20],Ans;
int dfs(int p, int op, int la)
{
	
	if(op==3)
	int lxy=1;
	
	if(vi[op][la])return h[op][la];
	vi[op][la]=1;
	if(!p)return h[op][la]=0;
	h[op][la]=INF;
	int w,pp,ss,_ss=0,_w;
	if(abs(la-p)&1)w=b[la];else w=a[la];
	pp=op^(1<<la);
	F2(i,la+1,n)if(pp&(1<<i))++_ss;
	F2(i,0,n)if(pp&(1<<i)){
		if(abs(i-p)&1)_w=a[i];else _w=b[i];
		if(_w>w)continue;
		ss=dfs(p-1,pp,i)+_ss;
		chmin(h[op][la],ss);
	}
	return h[op][la];
}

inline void _Sol_()
{
	read(n);F2(i,0,n)read(a[i]);F2(i,0,n)read(b[i]);
	O=(1<<n)-1;
//	F(o,1,O)_[o]=_[o>>1]+(o&1);
//	F(o,0,O)G[_[o]].push_back(o);
	Ans=INF;
	F2(i,0,n)
	dfs(n-1,O,i),
	chmin(Ans,h[O][i]);
	if(Ans>10000)prin(-1);else prin(Ans); //01 020  scanf 020
}

int main()
{
	int T=1; //read(T);
	while(T--)_Sol_();
}
/*
3
3 4 3
3 2 3
*/

Submission Info

Submission Time
Task D - Swap and Flip
User chenyanbo
Language C++14 (GCC 5.4.1)
Score 700
Code Size 2633 Byte
Status AC
Exec Time 353 ms
Memory 45312 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 5
AC × 44
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, sample-05.txt
Case Name Status Exec Time Memory
01.txt AC 2 ms 2304 KiB
02.txt AC 2 ms 2432 KiB
03.txt AC 8 ms 8448 KiB
04.txt AC 31 ms 44928 KiB
05.txt AC 35 ms 45056 KiB
06.txt AC 31 ms 44928 KiB
07.txt AC 36 ms 44544 KiB
08.txt AC 26 ms 24832 KiB
09.txt AC 39 ms 44032 KiB
10.txt AC 35 ms 37120 KiB
11.txt AC 6 ms 18688 KiB
12.txt AC 30 ms 44288 KiB
13.txt AC 45 ms 45056 KiB
14.txt AC 9 ms 26880 KiB
15.txt AC 27 ms 43776 KiB
16.txt AC 36 ms 37120 KiB
17.txt AC 39 ms 45184 KiB
18.txt AC 57 ms 41984 KiB
19.txt AC 27 ms 24832 KiB
20.txt AC 27 ms 24832 KiB
21.txt AC 30 ms 37120 KiB
22.txt AC 26 ms 24832 KiB
23.txt AC 2 ms 2304 KiB
24.txt AC 40 ms 44928 KiB
25.txt AC 49 ms 45312 KiB
26.txt AC 51 ms 45184 KiB
27.txt AC 39 ms 44928 KiB
28.txt AC 44 ms 45056 KiB
29.txt AC 67 ms 45184 KiB
30.txt AC 62 ms 45312 KiB
31.txt AC 46 ms 45312 KiB
32.txt AC 101 ms 45312 KiB
33.txt AC 353 ms 45312 KiB
34.txt AC 192 ms 45312 KiB
35.txt AC 145 ms 45312 KiB
36.txt AC 137 ms 45312 KiB
37.txt AC 128 ms 45312 KiB
38.txt AC 135 ms 45312 KiB
39.txt AC 23 ms 12544 KiB
sample-01.txt AC 2 ms 2304 KiB
sample-02.txt AC 1 ms 2304 KiB
sample-03.txt AC 1 ms 2304 KiB
sample-04.txt AC 2 ms 2304 KiB
sample-05.txt AC 2 ms 2304 KiB