-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2108.cpp
47 lines (47 loc) · 1.11 KB
/
2108.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <cstdio>
#include <math.h>
#define MAX_LENGTH 8001
int main()
{
int N, cnt, list[MAX_LENGTH] = {}, idx, many[2] = {}, max = 0, min = 8000;
long long sum = 0;
scanf("%d", &N);
cnt = N;
while (cnt--)
{
scanf("%d", &idx);
sum += idx, list[idx += 4000]++;
}
idx = 0;
for (int i = 0; i < MAX_LENGTH; i++)
{
if (many[0] < list[i])
many[0] = list[i], many[1] =i -4000;
if (list[i])
{
max = (max < i) ? i : max;
min = (min > i) ? i : min;
}
}
for (int i = 0; i < MAX_LENGTH; i++)
{
if (many[0] == list[i] && many[1] != i - 4000)
{
{
many[1] = i - 4000;
break;
}
}
}
for (int i = 0, length = N / 2; i <= length; i++)
{
while (list[idx] == 0)
idx++;
list[idx]--;
}
printf("%lld\n", (long long)round(sum / (double)N));
printf("%d\n", idx - 4000);
printf("%d\n", many[1]);
printf("%d", max - min);
return 0;
}