1076:正常血压
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 52448 通过数: 24578
【题目描述】
监护室每小时测量一次病人的血压,若收缩压在90-140之间并且舒张压在60-90之间(包含端点值)则称之为正常,现给出某病人若干次测量的血压值,计算病人保持正常血压的最长小时数。
【输入】
第一行为一个正整数n(n<100),其后有n行,每行2个正整数,分别为一次测量的收缩压和舒张压。
【输出】
输出仅一行,血压连续正常的最长小时数。
分析:关键是 连续 两字,如果不连续就要比较多段正常血压出现的时间长度,取最长的一段输出。
具体分析见代码注释:
#include <iostream>
using namespace std;
//如正常次数为1,则最长1个小时
//若 连续 两次正常,则最长2个小时
int main()
{
int n;
cin >> n;
int p1, p2;//收缩,舒张压
int num = 0;//记录连续正常的次数
int sum = 0;//记录总共正常的次数,也就是最长血压正常小时数
for (int i = 1; i <= n; ++i)
{
cin >> p1 >> p2;
if ((p1 >= 90 && p1 <= 140) && (p2 >= 60 && p2 <= 90))
{
//满足,说明开始有正常血压测量结果
num++;
}
else
{
//不满足,说明两次正常血压的测量时间不连续
//将连续正常血压次数归零
num = 0;
}
if (num > sum)
{
//满足,说明有连续正常血压
//直接赋给sum即可
sum = num;
}
}
cout << sum;
}