-
Notifications
You must be signed in to change notification settings - Fork 0
/
1234.cpp
97 lines (89 loc) · 4.58 KB
/
1234.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/* |\ | | ||\ \ /(_~ |~)|_~|\/||_~|\/||~)|_~|~)
|~\|_|/\||~\ | ,_) |~\|__| ||__| ||_)|__|~\
\ //~\| | |\ |~)|_~ | ||\ ||/~\| ||_~
| \_/\_/ |~\|~\|__ \_/| \||\_X\_/|__
(J U S T L I K E E V E R Y O N E E L S E !)
__ ,..---.._
+''''`--''-..`--..__
.\ _,/:i--._`:-:+._`.``-._
/`.._,,' \ `-.``--:.b....=.
|`..__,,..`. '`.__::i--.-::_
)- .....--i'\.. --+`'''-'
,' .'.._,.-'|._-b\
/,'<' V `oi| \ _.
|/ -|,--.." ,'-. ||\.. _.,;:'_<'
''/ | . ' |\||'\ /-'_/' `.
|,','| , . .-.|:.`. + .,:.. |
._,:'/ /-\ '^' -Y"\ |.| || /,+8d| |
.|/,'| |/':: ':=:' ,'| | | \|| "+)=' |
|+,';' /|_/ \ _/ \b':.\ \'| .|| ,'
,,:-i''_i' | ``-.Y',. ,|`: | \;- | |_,'
__ |'| |i:'._ ,' ,' ,; | |-)-' __--:b__
.P| | |/,'|\ - ._ / / _,Y- ,:/' `. `'".._
,'|| -','' | ._i._ `':| ,..,' ,Y;' \ `- ._
|||||,.. | \ '-.._ _,' / _,b-' `. '-.
||||P..i, .| '....,-' _,'''''-''' ' _,.. `\
+'` <'/ |`-.....---' ._ ,._
| | ,'``,:-''''/,--`.
Y|.b_,,: | || ,;,Y' / |.
,' /'----' .'| .. | | '" .`Y' .,-b_....;;,.
|+|,' | | \., ' ,' `:. _ ,/__` _=: _,'``-
/ +,' | /\_........:.' '"----:::::'Y .'.| |||
|' ' .'/- \ /'|| || | |||
||| /| \L /'|| ||/ | |||
`.| ,'/ .| / ,'||/o;/ |||
`..._,, | |/| ' |||
``-' | |, |||
| ,. | |||
,=--------.... | "" | |||
,/,'. i=..+._ ,.. '..;---:::''- | |
'/| __....b `-''`---....../.,Y'''''j:.,.._ | `._
.' _.Y.-' `.. ii:,'--------' | :-+. .| | b\
| .=_,.---'''''--...:..--:' / _..-----..:= | | '|\
| '-''`'--- ---'_,,,--'' `,.. | | \.
\ . ,' _,--'' :dg: _,/ ||| | \
`::b\` _,-i,-' ,..---' ,|:| | _|
`'--.:-._ ____,,,;.,'' `--._ '''''''' |'|' .' '
``'--....Y''-' `''--..._..____._____...,' | 'o-'
`''''`'''i==_+=_=i__
||'''- ' `.
`-.......-''
*/
#include<bits/stdc++.h>
using namespace std;
#define fastio ios_base::sync_with_stdio(0); cin.tie(0)
#define LL long long
#define mod 998244353
#define FOR(i, j, k) for (int i=j ; i<k ; i++)
#define ROF(i, j, k) for (int i=j ; i>=k ; i--)
const long long INF = 1e18;
const long long MAX = 1e5+10;
int main(){
fastio;
int t=1; //cin>>t;
while(t--){
int n; cin>>n; int a[n+1],o=0,e=0;
FOR(i,1,n+1) {cin>>a[i]; if(a[i] && a[i]&1) o++; else if(a[i] && a[i]%2==0) e++;}
LL dp[n+1][n+1][n+1][2];
FOR(i,0,n+1) FOR(j,0,n+1) FOR(k,0,n+1) dp[i][j][k][0]=INT_MAX,dp[i][j][k][1]=INT_MAX;
o = (n+1)/2 -o; e= n/2-e;
dp[0][0][0][0]=0,dp[0][0][0][1]=0;
FOR(i,1,n+1){
FOR(j,0,o+1)
FOR(k,0,e+1){
if(a[i]==0){
if(j>0)
dp[i][j][k][1] = min(dp[i-1][j-1][k][0]+1,dp[i-1][j-1][k][1]) ;
if(k>0)
dp[i][j][k][0] = min(dp[i-1][j][k-1][1]+1,dp[i-1][j][k-1][0]) ;
}
else if(a[i]&1)
dp[i][j][k][1] = min(dp[i-1][j][k][0]+1,dp[i-1][j][k][1]) ;
else if(a[i]%2==0)
dp[i][j][k][0] = min(dp[i-1][j][k][1]+1,dp[i-1][j][k][0]) ;
// cout<<dp[i][j][k][0] <<" "<<dp[i][j][k][1]<<endl;
}
}
cout<<min(dp[n][o][e][0],dp[n][o][e][1])<<"\n";
}
}