リンクをクリックして、完全なソリューションの概要PAT B -AC
タイトル:
ディスターブ居住せず、統計的ハウジングの空孔率は家庭に係る電気の連続的な変化によって判定される方法。以下のように決定:
- より多くの日の電気の半分以上が所定の閾値Eの下に存在している場合には観察期間中、住宅は「空いている」です。
- 観察期間は、所定の閾値D日を超えて、そして満足状態で、ハウジングは「空」である場合
今、家庭の電力消費量のデータを、あなたの統計「空いている」割合と「空室」率、住宅の全単位の割合としてつ以上の状態をあるハウジングの住宅地を与えられました。
入力フォーマット:
最初の行の入力がNの整数正(≤1000)を与えられ、住宅の全単位; Eの正の実数、低電池閾値、正の整数D、観察期間しきい値。次いで、N行、各ハウジング以下の形式で与えられた消費電力データ:
KE 1、 E 2 ... E K
Kは観測の日数がある場合は、E Iは、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%
(サンプルは説明:第二及び第三のファミリーは、「空き」として最初の4つの「空き」であり、他のユーザーが空ではありません。)
私のコード:
#include<iostream>
#include<cstdio>
#include<vector>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstring>
#include<sstream>
using namespace std;
//有的时候题目是一起做的,所以会有不需要的头文件
int main()
{
double N,e,D;
cin>>N>>e>>D;
int num_maybe=0,num_is=0;
for(int i=0;i<N;i++)
{
int K,sum=0;
cin>>K;
for(int j=0;j<K;j++)
{
double t;
cin>>t;
if(t<e)sum++;
}
if(sum>K/2&&K>D)num_is++;
else if(sum>K/2)num_maybe++;
}
double res_maybe=100.0*num_maybe/N;
double res_is=100.0*num_is/N;
printf("%2.1f%% %2.1f%%",res_maybe,res_is);
return 0;
}