Skip to content

Latest commit

 

History

History
52 lines (41 loc) · 1.78 KB

1053. 住房空置率.md

File metadata and controls

52 lines (41 loc) · 1.78 KB

【PAT B-1053】住房空置率

题意概述

在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断。判断方法如下:

  • 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为“可能空置”;
  • 若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为“空置”。

现给定某居民区的住户用电量数据,请你统计“可能空置”的比率和“空置”比率,即以上两种状态的住房占居民区住房总套数的百分比。

输入输出格式

输入第一行给出正整数 N,为居民区住房总套数;正实数 e,即低电量阈值;正整数 D,即观察期阈值。随后 N 行,每行按$K\ E_1\ E_2\ \cdots\ E_k$格式给出一套住房的用电量数据。其中 $K$ 为观察的天数,$K_i$ 为第 $i$ 天的用电量。

在一行中输出“可能空置”的比率和“空置”比率的百分比值,其间以一个空格分隔,保留小数点后 1 位。

数据规模

$N \le 1000$

C++代码

#include <bits/stdc++.h>
using namespace std;
using gg = long long;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    gg ni, di, ki, k1 = 0, k2 = 0;
    double ei, ai;
    cin >> ni >> ei >> di;
    for (gg i = 0; i < ni; ++i) {
        cin >> ki;
        gg num = 0;
        for (gg j = 0; j < ki; ++j) {
            cin >> ai;
            if (ai < ei) {
                ++num;
            }
        }
        if (num > ki / 2 and ki <= di)
            ++k1;
        else if (num > ki / 2 and ki > di)
            ++k2;
    }
    cout << fixed << setprecision(1);  //保留一位小数
    cout << k1 * 100.0 / ni << "% " << k2 * 100.0 / ni << '%';
    return 0;
}