#include #include #include using namespace std; int main() { const size_t MAX_ASTERISK = 76; size_t cor, col, H; int i, j; double max1, min1; cerr << "vvedite col-vo col:"; cin >> col; vector A(col); vector B(col); for(i = 0; i < col; i++) { cerr << "A[" << i << "]="; cin >> A[i]; } cerr << "vvedite col-vo cor:"; cin >> cor; if (cor == 0) { cor = sqrt(col); if (cor > 25) { cor = 1 + log2(col); cout << "sterg"; } else cout << "empirii"; cout << endl; } max1 = A[0]; min1 = A[0]; for(i = 0; i < col; i++) { if (A[i] > max1) max1 = A[i]; if (A[i] < min1) min1 = A[i]; } double cor_size = (max1 - min1)/cor; for (i = 0; i < col; i++) { bool flag = false; for (j = 0; (j < cor - 1) && !flag; j++) { auto L = min1 + j*cor_size; auto H = min1 + (j+1)*cor_size; if ((L <= A[i]) && (A[i] < H)) { flag = true; B[j]++; } } if (!flag) B[cor-1]++; } int maxb = B[0]; for (j = 1; j < cor; j++) { if (B[j] > maxb) maxb = B[j]; } for (j = 0; j < cor; j++) { if (maxb > MAX_ASTERISK) { H = MAX_ASTERISK * (static_cast(B[j]) / maxb); } else H = B[j]; if (B[j] < 100) cout << " "; if (B[j] < 10) cout << " "; cout << B[j] << "|"; for (i = 0; i < H; i++) cout << "*"; cout << endl; } return 0; }