#P4528. [CTSC2008] 图腾

[CTSC2008] 图腾

题目描述

在完成了古越州圆盘密码的研究之后,考古学家小布来到了南美大陆的西部。相传很久以前在这片土地上生活着两个部落,一个部落崇拜闪电,另一个部落崇拜高山,他们分别用闪电和山峰的形状作为各自部落的图腾。

小布的团队在山洞里发现了一幅巨大的壁画,壁画上被标记出了NN个点,经测量发现这NN个点的水平位置和竖直位置是两两不同的。小布认为这幅壁画所包含的信息仅与这NN个点的相对位置有关,因此不妨设坐标分别为(1,y1),(2,y2),...,(n,yn)(1, y_1) , (2, y_2), ..., (n, y_n),其中y1yny_1\sim y_n1N1\sim N的一个排列。

小布的团队打算研究在这幅壁画中包含着多少个图腾,其中闪电图腾的定义图示如下(图腾的形式只与44个纵坐标值的相对大小排列顺序有关):

1a<b<c<dN,ya<yc<yb<yd1≤a<b<c<d≤N,y_a<y_c<y_b<y_d

崇拜高山的部落有两个氏族,因而山峰图腾有如下两种形式,左边为AA类,右边为BB类(同样,图腾的形式也都只与44个纵坐标值的大小排列顺序有关):

1a<b<c<dN,ya<yb<yd<yc1≤a<b<c<d≤N,y_a<y_b<y_d<y_c

1a<b<c<dN,ya<yd<yc<yb1≤a<b<c<d≤N,y_a<y_d<y_c<y_b

小布的团队希望知道,这NN个点中两个部落图腾数目的差值。因此在本题中,你需要帮助小布的团队编写一个程序,计算闪电图腾数目减去山峰图腾数目的值,由于该值可能绝对值较大,本题中只需输出该值对1677721616777216的余数(注意余数必为正值,例如1-11677721616777216的余数为1677721516777215)。

输入格式

输入文件totem.in中第一行包含一个整数NN,为点的数目。 接下来一行包含NN个整数,分别为y1,y2,,yny_1, y_2, …, y_n。保证y1,y2,,yny_1, y_2, …, y_n1N1\sim N的一个排列。

输出格式

输出文件totem.out仅包含一个数,表示闪电图腾数目与山峰图腾数目的差值对1677721616777216的余数。

5
1 5 3 2 4
0
4
1 2 4 3
16777215

提示

【样例说明】

样例一中共有11个闪电图腾(13241324)和11BB类山峰图腾(15321532)。

样例二中仅有一个AA类山峰图腾(12431243),故差值为1-1,答案为1677721516777215

【数据规模】

对于10%10\%的数据,N600N ≤ 600

对于40%40\%的数据,N5000N ≤ 5000

对于100%100\%的数据,N200000N ≤ 200000