U242494 内存分配

题目描述

计算机中有 $x$ 个内存单元(排成一列),每个单元有被占用和未被占用两种状态,最开始时所有单元均未被占用。 现在有 $n$ 个需要运行的程序,每个程序都有一个固定的运行时长 $t_i$ ,运行时需要占用**连续**的 $m_i$ 个目前未被占用的内存单元,求运行完所有程序的最短时间(多个程序只要**内存足够**就可以一起运行,假定**不影响运行速度**)。 注:当一个程序运行完毕时,它所占用的内存自动释放。 注:只要运行完就行,顺序不重要。

输入格式

第一行两个整数,分别表示 $x$ 和 $n$ ,含义如题目所述。 接下来 $n$ 行,每行两个整数,$t_i$ 和 $m_i$ ,分别表示第 $i$ 个程序的运行时长和第 $i$ 个程序的内存需求(具体请查看题目描述)。

输出格式

一个正整数,表示运行完所有程序的最短时间。

说明/提示

数据范围待定