小杨的握手问题:计算全班总握手次数

ua548959 程序题 共 个子题

问题描述

小杨的班级里共有N名同学,学号从0至N-1。老师安排全班同学依次进入教室,每位同学进入时,需要和已经在教室内且学号小于自己的同学握手。求整个班级总共会进行多少次握手。

提示:可以考虑使用归并排序进行降序排序,并在此过程中求解。

输入描述

输入共2行:

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

保证每位同学会且只会进入教室一次。

输出描述

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

特别提醒:请不要在输入、输出中附带任何提示信息。

样例1

输入

4
2 1 3 0

输出

2

解释

  • 2号同学进入:教室无人,握手0次;
  • 1号同学进入:教室仅有2号同学,1号学号更小,无需握手,累计0次;
  • 3号同学进入:教室有1、2号同学,学号均小于3,握手2次,累计2次;
  • 0号同学进入:教室所有同学学号都更大,无需握手,累计2次。

总握手次数为2。

样例2

输入

6
0 1 2 3 4 5

输出

15

解释

每位同学进入时,学号都是当前教室最大的,总握手次数为0+1+2+3+4+5=15。

数据规模

  • 对于30%的测试点,保证N≤100;
  • 对于所有测试点,保证2≤N≤3×10^5。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧