使用c++代码生成 题目描述 一共有 n 种药,对于每一种药,需要服用到第 a i天(包括第 ai 天),每天需要吃 bi 颗药,求最早在一天内服用 k 颗及 k 颗以下的药是第几天。 输入格式 第一行两个整数 n,k, 接下来 n 行,每行有两个数 a,b。 输出格式 输出共一行一个整数,代表最早服用 k 颗及 k 颗以下的药是第几天
时间: 2024-02-10 10:28:18 浏览: 154
以下是使用 C++ 编写的代码,实现了题目描述中所要求的功能:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
vector<pair<int, int>> medication(n);
for (int i = 0; i < n; i++) {
cin >> medication[i].first >> medication[i].second;
}
sort(medication.begin(), medication.end());
int day = 0;
int count = 0;
for (auto m : medication) {
if (m.second <= k - count) {
count += m.second;
day = m.first;
} else {
day = m.first + ceil((k - count) / (double)m.second);
break;
}
}
cout << day << endl;
return 0;
}
```
你可以使用以上的代码来解决这个问题。希望能对你有所帮助!如果还有其他问题,请随时提问。
阅读全文