#jag2017summerday1g. [jag2017summer_day1_g]ツーリスト問題
[jag2017summer_day1_g]ツーリスト問題
问题描述
某位游客有两个列表。
这两个列表的长度都是N,第i个列表的第j个元素是A_ij。A_ij是一个非零的正数或负数。
该游客想要对这些列表进行以下操作:
- 首先,将两个列表中的所有负数替换为正数。在替换的过程中,需要保持原来相同的数字仍然相同,不同的数字应该变为不同的数字。
- 其次,准备一张表格,表格的大小是2行N列,将第i个列表的第j个数写入第i行第j列的方格中。
- 最后,用剪刀剪掉包围着不同数字的相邻方格和外框。这样纸就会分成若干块,统计块的数量。
该游客通过适当改变负数的值,希望最小化分割成的块的数量。纸片会分成多少块呢?
约束条件
- 1≤N≤10^5
- 1≤|A_ij|≤300
输入
输入从标准输入给出,格式如下:
N A_1,1 A_1,2 ... A_1,N A_2,1 A_2,2 ... A_2,N
输出
输出分割后的块的数量。
输入例子1
5
1 2 1 2 1
-1 -2 -3 -3 -3
输出例子1
5
例如,将-1替换为999,将-2替换为2,将-3替换为1,可以得到如下图所示的结果,纸片被切成了最小的5块。
输入例子2
15
1 -1 1 -1 -1 -2 2 -1 3 3 3 -3 -2 -2 1
2 -1 1 1 -1 -2 -1 2 -2 3 3 -2 -2 -2 3
输出例子2
9