问题 J: GESP C++ 9月六级-编程题2-小杨的握手问题

问题 J: GESP C++ 9月六级-编程题2-小杨的握手问题

时间限制: 1 Sec  内存限制: 128 MB
提交: 6  解决: 0
[提交] [状态] [讨论版] [命题人:]

题目描述

输入

输入包含2行。第一行一个整数N,表示同学的个数;第二行N个用单个空格隔开的整数,依次描述同学们进入教室的顺序,每个整数在0~N -1之间,表示该同学的学号。
保证每位同学会且只会进入教室一次。


对于所有测试点,保证2≤N ≤3 x105


输出

输出一行一个整数,表示全班握手的总次数。

样例输入 Copy

4
2 1 3 0

样例输出 Copy

2

提示

样例1解释:
2号同学进入教室,此时教室里没有其他同学。
1号同学进入教室,此时教室里有2号同学。1号同学的学号小于2号同学,因此他们之间不需要握手。
3号同学进入教室,此时教室里有1,2号同学。3号同学的学号比他们都大,因此3号同学需要分别和另外两位同学握手。
0号同学进入教室,此时教室里有1,2,3号同学。0号同学的学号比他们都小,因此0号同学不需要与其他同学握手。
综上所述全班一共握手0+0+2+0=2次。

样例2:
6
0 1 2 3 4 5


输出:15
全班所有同学之间都会进行握手,因为每位同学来到教室时,都会发现他的学号是当前教室里最大的,所以他需要和教室里的每位其他同学进行握手。