#P1554. 买木头

    ID: 4963 传统题 1000ms 128MiB 尝试: 39 已通过: 32 难度: 2 上传者: 标签>递推省赛一维数组结构体最大公约数二分答案

买木头

题目描述

nn 个木材供应商,每个供货商有长度相同、数量一定的木头。长木头可以锯成短木头,但短木头不能接长。现在有一个客人需要 mm 根长度相同的木头。请你计算,在不超过供货商所供木头总量的前提下,满足客人要求的最长的相同木头长度。

例如 n=2,m=30n=2, m=30,两个供货商的木头信息为:

  • 11 个供货商的木头长度为 1212,共有 1010 根;
  • 22 个供货商的木头长度为 55,共有 1010 根。

计算的结果为 55:长度为 1212 的木头一根可锯出两根长度为 55 的木头(多余部分无用),长度为 55 的木头保持不动,此时总共可得到 3030 根长度为 55 的木头,恰好满足客人需求。

输入格式

第一行包含四个整数 n,m,l1,s1n, m, l_1, s_1,其中 l1l_1 是第一个供货商木头的长度,s1s_1 是第一个供货商木头的数量。
对于 i2i \ge 2,供货商的木头长度 lil_i 和数量 sis_i 由以下公式递推得到:

$$l_i = ((l_{i-1} \times 37011 + 10193) \bmod 10000) + 1$$$$s_i = ((s_{i-1} \times 73011 + 24793) \bmod 100) + 1$$

输出格式

一个整数,表示能满足客人所需的 mm 根相同木头的最长长度。

样例

10 10000 8 20
201

数据范围

  • 1n100001 \le n \le 10000
  • 1m10000001 \le m \le 1000000
  • 1l1100001 \le l_1 \le 10000
  • 1s11001 \le s_1 \le 100