小y的线段
题号:NC22612
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

给出n条线段,第i条线段的长度为a_i,每次可以从第i条线段的j位置跳到第i + 1条线段的j+1位置。如果第i+1条线段长度不到j+1,那么就会回到第i条线段的0位置,然后继续跳。
问从第i条线段的0位置跳到第n条线段需要跳多少次
为了减少输入量,a数组将由以下方式得到
unsigned int SA, SB, SC;
 int mod;
 unsigned int Rand(){
 SA ^= SA << 16;
 SA ^= SA >> 5;
 SA ^= SA << 1;
 unsigned int t = SA;
 SA = SB;
 SB = SC;
 SC ^= t ^ SA;
 return SC;
 }
 int main() {
 cin>>n>>mod>>SA>>SB>>SC;
 for(int i = 1;i <= n;++i) a[i] = Rand() % mod + 1;
 }

输入描述:

第一行两个正整数n,mod,表示一共有n条线段

第二行3个数字,分别为SA,SB,SC

输出描述:

一行一个数字,表示从每条线段跳到n的次数之和。
示例1

输入

复制
5 5
5 6 4

输出

复制
13

备注: