软件开发
时间限制:1秒 内存限制:256M
【题目描述】
小沐的软件开发公司同时要开发两个软件,并且要同时交付给用户。为了尽快完成这一任务,他将每个软件划分成 \(m\) 个模块,由公司里的技术人员分工完成。
每个技术人员完成同一软件的不同模块的所用的天数是相同的,并且是已知的,但完成不同软件的一个模块的时间是不同的,每个技术人员在同一时刻只能做一个模块,一个模块只能由一个人独立完成而不能由多人协同完成。一个技术人员在整个开发期内完成一个模块以后可以接着做任一软件的任一模块。
小沐请你帮忙写一个程序计算应怎样分配每个技术人员的任务,才能让这两个软件的交付时间尽量早。
【输入格式】
第一行包含两个由空格隔开的整数 \(n\) 和 \(m\),其中 \(1≤n≤100,1≤m≤100\)。
接下来的 \(n\) 行每行包含两个用空格隔开的正整数 \(a\) 和 \(b\),其中第 \(i+1\) 行的 \(a\) 表示技术人员 \(i\) 完成第一个软件中的一个模块所需的天数,\(b\) 表示该技术人员完成第二个软件中的一个模块所需的天数,其中\(l≤a,b≤100\)。
【输出格式】
仅有一行包含一个整数 \(d\),表示公司最早能于 \(d\) 天后交付软件。
【输入输出样例】
Input
3 20
1 1
2 4
1 6
Output
18
【数据限制】
对于 \(50\%\) 的数据,\(1≤n≤10\), \(1≤m≤10\)
对于 \(70\%\) 的数据,\(1≤n≤50\), \(1≤m≤50\)
对于 \(100\%\) 的数据,\(1≤n≤100\), \(1≤m≤100\),\(l≤a,b≤100\)
【来源】
Mr.he