1. 程式人生 > >1053. 住房空置率 (20)

1053. 住房空置率 (20)

div 正整數 滿足 code 一半 打擾 stdio.h 百分比 ret

在不打擾居民的前提下,統計住房空置率的一種方法是根據每戶用電量的連續變化規律進行判斷。判斷方法如下:

  • 在觀察期內,若存在超過一半的日子用電量低於某給定的閾值e,則該住房為“可能空置”;
  • 若觀察期超過某給定閾值D天,且滿足上一個條件,則該住房為“空置”。

現給定某居民區的住戶用電量數據,請你統計“可能空置”的比率和“空置”比率,即以上兩種狀態的住房占居民區住房總套數的百分比。

輸入格式:

輸入第一行給出正整數N(<=1000),為居民區住房總套數;正實數e,即低電量閾值;正整數D,即觀察期閾值。隨後N行,每行按以下格式給出一套住房的用電量數據:

K E1 E2 ... EK

其中K為觀察的天數,Ei為第i天的用電量。

輸出格式:

在一行中輸出“可能空置”的比率和“空置”比率的百分比值,其間以一個空格分隔,保留小數點後1位。

輸入樣例:

5 0.5 10
6 0.3 0.4 0.5 0.2 0.8 0.6
10 0.0 0.1 0.2 0.3 0.0 0.8 0.6 0.7 0.0 0.5
5 0.4 0.3 0.5 0.1 0.7
11 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
11 2 2 2 1 1 0.1 1 0.1 0.1 0.1 0.1

輸出樣例:

40.0% 20.0%

(樣例解釋:第2、3戶為“可能空置”,第4戶為“空置”,其他戶不是空置。)

code:

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     int n,k,d,i,j;
 6     int flag = 0,count = 0,maybe = 0,def = 0;
 7     double E,e;
 8     scanf("%d%lf%d",&n,&E,&d);//5 0.5 10 
 9     for(i = 0;i < n;i++)
10     {
11         scanf("%d",&k);//6
12         if(k > d)
13 flag = 1; 14 for(j = 0;j < k;j++) 15 { 16 scanf("%lf",&e); 17 if(e < E) 18 { 19 count++; 20 } 21 } 22 if(count > k/2) 23 { 24 if(flag == 1) 25 def++; 26 else 27 maybe++; 28 } 29 flag = 0; 30 count = 0; 31 } 32 // printf("%d %d",maybe,def); 33 double ma = (maybe*100.0)/n;//一定要100.0精確到小數點後一位,1/8 34 double de = (def*100.0)/n; 35 printf("%.1lf%c ",ma,%); 36 printf("%.1lf%c\n",de,%); 37 38 return 0; 39 }

1053. 住房空置率 (20)