题目描述
某学校拟组织学业水平测试,共有 n 个考场可以使用,依次编号为第 1∼n 考场。第 i 考场共有 ri 行 ci 列个座位。
该学校共有 m 名考生。学校必须从第 1 考场开始,编号连续地使用若干个考场。每个考场配备两名监考员。保证所有考场的位置总和足以容纳全部考生。
请你计算,学校最少聘请多少名监考员?
输入格式
第一行为两个整数 n,m。
接下来 n 行,每行两个正整数 ri,ci。
输出格式
输出一行一个整数,表示答案。
输入输出样例
输入 #1复制
5 20
2 2
3 3
4 4
5 5
6 6
输出 #1复制
6
说明/提示
【样例 1 解释】
共有 5 个考场和 20 名考生,各考场情况如下:
- 第 1 考场,可容纳 4 人
- 第 2 考场,可容纳 9 人
- 第 3 考场,可容纳 16 人
- 第 4 考场,可容纳 25 人
- 第 5 考场,可容纳 36 人
使用第 1∼3 考场,共需要 6 名监考员。
【数据规模与约定】
对于 60% 的测试数据,1≤n≤103,1≤ri,ci≤50。
对于 100% 的测试数据,1≤n≤105,1≤ri,ci≤105,1≤m≤i=1∑nri⋅ci。
题解:
#include "iostream"
using namespace std;
int main(){
long long n,m;
cin>>n>>m;
long long r[100005],c[100005];
for(int i=0;i<n;i++){
cin>>r[i]>>c[i];
}
long long sum=0;
for(int i=0;i<n;i++){
sum+=r[i]*c[i];
if(sum>=m){
cout<<2*(i+1)<<endl;
break;
}
}
system("pause");
return 0;
}