|
|
|
@ -33,24 +33,31 @@ void FindMinMax(const vector<double>& marks, double & min, double & max) {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
Input in = input_data();
|
|
|
|
|
int VecSize = size(in.marks);
|
|
|
|
|
double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1;
|
|
|
|
|
vector <int> chart(in.NCharts);
|
|
|
|
|
FindMinMax(in.marks, min, max);
|
|
|
|
|
interval = (max - min) / in.NCharts;
|
|
|
|
|
for (int x : in.marks) {
|
|
|
|
|
vector <double> MakeHistogram(const vector<double>& marks, int NCharts) {
|
|
|
|
|
double interval = 0, i = 0, min = 0, max = 0;
|
|
|
|
|
vector<double> chart(NCharts);
|
|
|
|
|
FindMinMax(marks, min, max);
|
|
|
|
|
interval = (max - min) / NCharts;
|
|
|
|
|
for (int x : marks) {
|
|
|
|
|
i = 0;
|
|
|
|
|
while ((x > min + interval * (i + 1))) {
|
|
|
|
|
i += 1;
|
|
|
|
|
}
|
|
|
|
|
chart[i] += 1;
|
|
|
|
|
}
|
|
|
|
|
max = *max_element(begin(chart), end(chart));
|
|
|
|
|
if ((max+4) > 80) {
|
|
|
|
|
scale = (max+4) / 80;
|
|
|
|
|
return chart;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
int main()
|
|
|
|
|
{
|
|
|
|
|
const int shift = 4, maxlen = 80;
|
|
|
|
|
Input in = input_data();
|
|
|
|
|
int VecSize = size(in.marks);
|
|
|
|
|
double interval = 0, inp = 0, i = 0, min = 0, max = 0, scale = 1;
|
|
|
|
|
vector <double> chart = MakeHistogram(in.marks, in.NCharts);
|
|
|
|
|
FindMinMax(chart, min, max);
|
|
|
|
|
if ((max+shift) > maxlen) {
|
|
|
|
|
scale = (max+shift) / maxlen;
|
|
|
|
|
}
|
|
|
|
|
for (i = 0; i < in.NCharts; i++) {
|
|
|
|
|
if (chart[i] < 10) {
|
|
|
|
|