File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
Contests/Long Challenge/2017 02 February FEB17/Programs Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < vector>
3
+ using namespace std ;
4
+
5
+ int main ()
6
+ {
7
+ int no_of_elements, no_of_queries;
8
+ cin >> no_of_elements >> no_of_queries;
9
+
10
+ vector <int > A (no_of_elements + 5 );
11
+ for (int i = 1 ; i <= no_of_elements; i++)
12
+ {
13
+ cin >> A[i];
14
+ }
15
+
16
+ vector <int > left_equal (no_of_elements + 1 );
17
+ for (int i = 1 ; i <= no_of_elements; i++)
18
+ {
19
+ left_equal[i] = (A[i] == A[i - 1 ] ? left_equal[i - 1 ] : i);
20
+ }
21
+
22
+ vector <int > right_equal (no_of_elements + 1 );
23
+ for (int i = no_of_elements; i >= 1 ; i--)
24
+ {
25
+ right_equal[i] = (A[i] == A[i + 1 ] ? right_equal[i + 1 ]: i);
26
+ }
27
+
28
+ for (int i = 1 ; i <= no_of_queries; i++)
29
+ {
30
+ int left, right, k;
31
+ cin >> left >> right >> k;
32
+
33
+ int mid = left + (right - left)/2 ;
34
+ int segment_left = max (left, left_equal[mid]);
35
+ int segment_right = min (right, right_equal[mid]);
36
+ int segment = segment_right - segment_left + 1 ;
37
+
38
+ cout << (segment < k ? -1 : A[mid]) << " \n " ;
39
+ }
40
+
41
+ return 0 ;
42
+ }
You can’t perform that action at this time.
0 commit comments