用c++完成以下问题:蒜头君想泡咖啡喝。现在他得到了 n 份菜谱,每个菜谱上都给了两个数 l,r代表温度区间在 [l,r] 度泡出来的咖啡会很好喝。 可是菜谱太多了,蒜头君一度感到疑惑。经过思考之后他得出了一个结论:某个温度只要有 k 份或者更多菜谱推荐,那么这个温度下泡出来的咖啡会很好喝。 现在他给出了 m 个温度区间,同样还是用 [l,r] 表示,现在求问每个区间里面有多少个整数,使得咖啡在这个温度下泡出来会很好喝?
时间: 2023-06-06 12:06:13 浏览: 43
抱歉,我可以回答这个问题。下面是用C语言的代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main(){
int n, m, k;
scanf("%d%d%d", &n, &m, &k); //输入三个参数
int count[100001] = {0}; //用来记录每个温度出现的次数
for(int i=0; i<n; i++){
int l, r;
scanf("%d%d", &l, &r); //输入菜谱的温度区间
for(int j=l; j<=r; j++){
count[j]++; //将区间内每个温度出现的次数+1
}
}
for(int i=0; i<m; i++){
int ans = 0;
int l, r;
scanf("%d%d", &l, &r); //输入温度区间
for(int j=l; j<=r; j++){
if(count[j] >= k) ans++; //如果该温度出现次数不少于k,ans+1
}
printf("%d\n", ans); //输出该温度区间内使咖啡好喝的温度个数
}
return 0;
}
```
这段代码的思路是先用一个数组count来记录每个温度出现的次数,然后遍历每个温度区间,在区间内将对应的温度次数+1。最后对于每个给出的温度区间,遍历区间内的每个温度,如果出现次数不少于k,则将答案+1。最终输出每个区间内使咖啡好喝的温度个数。