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 |
|
|
| 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 |