File tree 3 files changed +102
-65
lines changed
3 files changed +102
-65
lines changed Load Diff This file was deleted.
File renamed without changes.
Original file line number Diff line number Diff line change
1
+ #include < bits/stdc++.h>
2
+
3
+ using namespace std ;
4
+
5
+ typedef long int li;
6
+ typedef long long int lli;
7
+ typedef vector<long long int > vlli;
8
+ typedef pair<lli, lli> plli;
9
+ typedef vector<int > vi;
10
+ typedef stack<long long int > slli;
11
+
12
+ void task ()
13
+ {
14
+
15
+ lli lenStream;
16
+ cin >> lenStream;
17
+ priority_queue<lli> maxHeap;
18
+ priority_queue<lli, vector<lli>, greater<lli>> minHeap;
19
+
20
+ lli currentMedian = 0 ;
21
+
22
+ lli number;
23
+
24
+ vector<lli> ans;
25
+
26
+ cin >> currentMedian;
27
+ lenStream--;
28
+ ans.emplace_back (currentMedian);
29
+
30
+ while (lenStream--)
31
+ {
32
+
33
+ cin >> number;
34
+
35
+ if (maxHeap.size () > minHeap.size ())
36
+ {
37
+
38
+ if (number < currentMedian)
39
+ {
40
+ minHeap.push (maxHeap.top ());
41
+ maxHeap.pop ();
42
+ maxHeap.push (number);
43
+ }
44
+ else
45
+ {
46
+ minHeap.push (number);
47
+ }
48
+
49
+ currentMedian = (lli)floor ((maxHeap.top () + minHeap.top ()) / 2.0 );
50
+ }
51
+ else if (maxHeap.size () == minHeap.size ())
52
+ {
53
+
54
+ if (number < currentMedian)
55
+ {
56
+
57
+ maxHeap.push (number);
58
+ currentMedian = maxHeap.top ();
59
+ }
60
+ else
61
+ {
62
+ minHeap.push (number);
63
+ currentMedian = minHeap.top ();
64
+ }
65
+ }
66
+ else
67
+ {
68
+
69
+ if (number > currentMedian)
70
+ {
71
+
72
+ maxHeap.push (minHeap.top ());
73
+ minHeap.pop ();
74
+ minHeap.push (number);
75
+ }
76
+ else
77
+ {
78
+ maxHeap.push (number);
79
+ }
80
+
81
+ currentMedian = (lli)floor ((maxHeap.top () + minHeap.top ()) / 2.0 );
82
+ }
83
+
84
+ ans.emplace_back (currentMedian);
85
+ }
86
+
87
+ for (auto num: ans) {
88
+ cout<<num<<' \n ' ;
89
+ }
90
+
91
+ }
92
+
93
+ int main ()
94
+ {
95
+
96
+ ios::sync_with_stdio (0 );
97
+ cin.tie (0 );
98
+
99
+ task ();
100
+
101
+ return 0 ;
102
+ }
You can’t perform that action at this time.
0 commit comments