#A0542. 等差数列变化求和

等差数列变化求和

题目描述

33DAI 很喜欢等差数列。他得到了一个长度为 nn 的等差数列,其中首项为 a1a_1,公差为 dd(公差可能为负数)。

显然第 iiai=a1+(i1)×da_i = a_1 + (i-1)\times d

33DAI 觉得直接等差数列求和太简单了,于是构造了一个新的数列 b1bnb_1\sim b_n,其中 bi=min(r,max(l,ai))b_i=\min(r,\max(l,a_i)),即把等差数列的每一项都变到 lrl\sim r 的范围内。

请你求出 b1bnb_1\sim b_n 之和。

输入格式

第一行五个整数 n,a1,d,l,rn,a_1,d,l,r

输出格式

一行一个整数,表示 b1bnb_1\sim b_n 之和。

5 1 2 3 8
26

样例解释

  • a1ana_1\sim a_n1,3,5,7,9{1,3,5,7,9}
  • b1bnb_1\sim b_n3,3,5,7,8{3,3,5,7,8}

数据规模与约定

对于 100%100\% 的数据,1n10121\le n \le 10^{12}106a1,d,l,r106-10^6\le a_1,d,l,r\le 10^6lrl\le r

  • 子任务 1(30 分):n=1n=1
  • 子任务 2(30 分):n106n\le 10^6
  • 子任务 3(40 分):没有特殊限制。