Haga clic en el enlace completo Resumen solución PAT B -AC
Título:
sin residentes molestar, un método de tasa de vacantes carcasa estadístico se juzga por una variación continua de la electricidad de acuerdo con los hogares. Determina como sigue:
- Durante el período de observación, si hay más de la mitad de la electricidad día está por debajo de un valor umbral dado E, la carcasa está "vacía";
- Cuando el período de observación supera un valor umbral dado día D, y en una condición satisfecho, la carcasa es "vacío".
Ahora bien, dada una zona residencial de los datos de consumo de electricidad de la casa, le estadísticas proporciones "vacantes" y la tasa de "vacante", la vivienda que es más de dos estados como porcentaje del total de unidades de vivienda residencial.
Formato de entrada:
entrada de la primera fila se le da un número entero positivo N (≤1000), total de unidades de vivienda residencial; número positivo real a e, el umbral de batería baja; número entero D positivo, el umbral de periodo de observación. Entonces N filas, cada alojamiento de un determinado los datos de consumo de energía en el siguiente formato:
KE 1, E 2 ... E K
Donde K es el número de días de observación, E i es el consumo de i-día.
Formato de salida:
línea de salida proporciones "vacantes" y el valor de porcentaje "vacío" de la relación, con un espacio entre ellos, Reservados 1 lugar decimal.
de entrada de la muestra:
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
Resultado de muestra:
40.0% 20.0%
(Muestra explicó: la segunda y tercera familia es "vacante", la primera de cuatro como "vacante", otros usuarios no están vacías.)
Mi código:
#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;
}