-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2009G1.cpp
More file actions
executable file
·186 lines (184 loc) · 27.5 KB
/
Copy path2009G1.cpp
File metadata and controls
executable file
·186 lines (184 loc) · 27.5 KB
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#include<bits/stdc++.h>
/*
*/namespace __DEBUG_UTIL__{/*####################---++++++++++++++++++++++++++++++++++++---------....................................................*/using namespace std; void print/*###############
*/(const char *x) {cerr<<x;}void print/*######---+++++++++++++++++++++++++++++++++++++++---------...........--.........................................*/(bool x) {cerr<<(x?"T":"F");}void print/*#####
*/(char x) {cerr<<'\''<<x<<'\'';}/*########+++++++++++++++++++++++++++++++++++++++++++++--------..........----...........................................*/void print/*################################
*/(signed short int x) {cerr << x;}/*###++++++++++++++++++++++++++++++++++++++++++++++++-------...........---..................................................*/void print/*##########################
*//*################################-----++++++++++++++++++++++++++++++++++++++++++++---------...................................................................*//*##################################
*//*##############################--------+++++++++++++++++++++++++++++++++++++++++++--------...................................................--...---..........*//*#################################
*//*############################---------+++++++++++++++++++++++++++++++++++++++++++++-------..................................................-++++++++--...........*//*##############################
*//*###########################---------+++++++++++++++++++++++++++++++++++++++++++++-------..................................................-++*//*###++--...........*//*############################
*//*##########################---------+++++++++++++++++++++++++++++++++++++++++++++++-----...................................................-++*//*#####++-..........-*//*###########################
*//*########################----------++++++++++++++++++++++++++++++++++++++++++++++++-----...................................................--+*//*#######+--........--*//*##########################
*//*########################---------+++++++++++++++++++++++++++++++++++++++++++++++++----.....................................................--+*//*#######+--........--*//*#########################
*//*######################----------++++++++++++++++++++++++++++++++++++++++++++++++-----.......................................................--++*//*######++-........--*//*########################
*//*######################---------++++++++++++++++++++++++++++++++++++++++++++++++------.........................................................--++*//*#####+--.........-*//*#######################
*//*#####################-++++++++++++++++++++++++++++++++++++++++++++++++++++++-+-------...........................................................--++*//*####+--........--*//*######################
*//*####################-+++###+++++++++++++++++++++++++++++++++++++++++++++++++-+--------............................................................--++*//*##++-..........*//*######################
*//*####################+++####+++++++++++++++++++++++++++++++++++++++++++++++++++---------..............................................................-++####++-.........---*//*####################
*//*#####################+#####+++++++++++++++++++++++++++++++++++++++++++++++++++--++++----..............................................................--+++#++--..........--*//*###################
*//*##########################++++++++++++++++++++++++++++++++++++++++++++++++++++-----------...............................................................--++++-...........----*//*#################
*//*#########################+++++++++++++++++++++++++++++++++++++++++++++++++++++-------------...............................................................-----............----+*//*###############
*//*########################++++++++++++++++++++++++++++++++++++++++++++++++++++----------------.................................................................--...............---*//*##############
*//*#######################+++++++++++++++++++++++++++++++++++++++++++++++++++++------------------...................................................................................---*//*###########
*//*######################++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------..................................................................................---*//*##########
*//*#####################+++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------..................................................................................--*//*#########
*//*#####################+++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------..................................................................................--*//*#######
*//*#################+++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------..................................................................................*//*#######
*//*###############+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------................................................................................--*//*#####
*//*##############+++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------................................................................................-*//*####
*//*#############++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------.............................................................................--*//*###
*//*############++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------.............................................................................-*//*##
*//*###########+++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------........--------------..........................................................................--#####
*//*##########+++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------............------------....................................................--...................---###
*//*#########++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------..............------------....................................................-...................--###
*//*#########+++++++++++++++++++++++++++++++++++++++++++++++--------.-----------------------------...####.......-------------.................................................--...................---#
*//*########+++++++++++++++++++++++++++++++++++++++++++++++-------..------------------------------.....#..........-------------................................................-....................---
*//*#######++++++++++++++++++++++++++++++++++++++++++++++-----....--.------------------------------..............-----------------...................................................................--
*//*#######+++++++++++++++++++++++++++++++++++++++++++----------------------------------------------.......------------------------...................................................................-
*//*######++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------....-----------------.-----------.................................................................
*//*######++++++++++++++++++++++++++++++++++++++----------------------------------------------------.....------------------......------................................................................
*//*######++++++++++++++++++++++++++++++++++++-----------------------------------------------------------------------------............................................................................
*//*#####+++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------..----.....................................................................
*//*#####++++++++++++++++++++++++++++++++++----.----------------------------------------------------------------...---....................####.........................................................
*//*#####++++++++++++++++++++++++++++++++-----------------------------------------------------------.......................................####........................................................
*//*####+++++++++++++++++++++++++++++++--------------------------------------------------------.................................................................................--.....................
*//*####++++++++++++++++++++++++++++-----------------------------------------------------------...............................................................................----.....................
*//*###++++++++++++++++++++++++++-----------------------------------------------------......................................................................................------.....................
*//*###++++++++++++++++++++++++------------------------------------------------------...........................................................................------....--------.....................
*//*###+++++++++++++++++++++++-------------------------------------------------------.............................................................................----------------.....................
*//*###++++++++++++++++++++---------------------------------------------------........................................................................................------------.....................
*//*###+++++++++++++++++++----------------------------------------------------.............................................................................................-------.....................
*//*###++++++++++++++++++-----------------------------------------------------..............................................................................................------.....................
*//*###++++++++++++++++++-----------------------------------------------.----.................................................................................................----.....................
*//*###++++++++++++++++++------------------------------------------------..-..................................................................................................---......................
*//*###++++++++++++++++++-----------------------------------------------......................................................................................................--.......................
*//*###+++++++++++++++++----------------------------------------------........................................................................................................--.......................
*//*###+++++++++++++++++----------------------------------------------.....................................................---................................................--.......................
*//*###++++++++++++++++-----------------------------------------------..............................................--++++++++++++---........................................----......................
*//*###++++++++++++++----------------------------------------+++++---............................................--++++++++++++++++++++-......................................-----....................
*//*###+++++++++++++-----------------------------------++*//*#######++--........................................-+++-----+++++++---++++++--...................................------...................
*//*###++++++++++++---------------------------------+++####++++++++++++++-.....................................------....--+++++++-----++++--..................................------..................
*//*###++++++++++---------------------------------++++++++-----+++++#+++--.........................................---....-+++++++++--.---+++-..................................-----..................
*//*###++++++++++-------------------------------+++#++--------..--+++++++-........................................--+-----+++++++++++-....-----...................................----.................
*//*###++++++++--------------------------------+++++---------...--++++++++-.......................................-++++++++++++++++++--.....----...................................---.................
*//*#####++++++-------------------------------++++---....-------+++++++++++-.....................................--+++++++++++++++++++-.......---...................................---................
-...#####+++++---------------------------------+---......--+++++++++++++++++-....................................--+++++++++++++++++++--............................................---................
--...--+##+++------------------------------------........-++++++++++++++++++-....................................-+++++--++++++---------..............................................-................
--....------------------------------------------........--++++++++++++++------...................................--+------++++----------..............................................--...............
---.....--------------------------------------...........-++++----+++++------.....................................---------------------................................................................
+---..........-------------------------------............-------------------.......................................----................................................................................
++--...........-----------------------------..............-----.........................................................................................................................-..............
++--................------------------------...............--...........................................................................................................................-..............
++--...................------------------...............................................................................................................................................-------........
++--..................###..------------.................................................................................................................................................------.........
++--.....................#####----------.................................................................................................................................................---...........
+++-.........................*//*##.----...............................................................................................................................................................
+++-............................*//*####----...........................................................................................................................................................
+++-...---........................*//*#######..........................................................................................................................................................
+++--.---------......................*//*#########....................................-----------......................................................................................................
+++--.---------.........................*//*##########-.............................-----------------..................................................................................................
+++--.---------............................*//*###########...------................--------------------.............................................................................---................
+++--.-------------------------................*//*#########--------..............----------......................................................................................----------...........
+++--.-----------------+++++++-----...............*//*######---------.............-------.....................................................................................----------------.........
+++-------------------------+++++--------............*//*####--------.............------....................................................................................-----####-----------......-
+++-----------------...-----------+++---------......--..#####---------.............---......................................................................................-----##++++-----------.----
+++++--------------------...-----------+++++-----------.....#----------.............-......................................................................-............---..---###++------------------
##+++++++++--------------------------------------------------.---------...................................................................................---........----------------------------------
####+++++++++++++++----------------------------------------------------...................................................................................--.......---------------------------------###
####++++++++#+++++++++-------------------------------------------------...............................................................................----------------------------------------------###
*//*###########++++++++++++---------------------------------------------............................................................................-------------++++---------------------------++#####
*//*##############+++++++++++++++------------------------------------------.......................................................................*//*##---------+++++-------------------------+#+++###
*//*###############+++++++++++++++++++-------------------------------++++--------................................................*//*#####################-----------++---------------------###+++++###
*//*###############++++++++++++++++++++++++++--------------------------++---------.....-------.................-*/(unsigned short int x) {cerr << x;}/*#####--------------------------------+++++++++##
*/void print/*#####++++++++++++++++++-+++++++++-------------------------------................*/(signed int x) {cerr << x;}void print/*########################----####-------------------+--+++++++++-
*//*###############++++++++++++++++++++#####++++----------------------------............*/(unsigned int x) {cerr << x;}void print(signed long int x) {cerr << x;}/*####-------------+++++-----+++++++--
*/void print/*#####++++++++++++++++++++#####++++----------------------------------........-*/(unsigned long int x) {cerr << x;}void print/*############################------------++++++----++++++++--
*//*###############++++++++++++++++++++#####++++------------......------....--------.........*/(signed long long int x) {cerr << x;}void print/*#######################+-----+++++++##+++----++++++++--
*//*###############+++++++++++++++++++++####++++------------....................................*/(unsigned long long int x) {cerr << x;}void print/*#################+++++++++++++###++++-+++++++++++-
*//*###############++++++++++++++++++++++###+++------------........................................*/(float x) {cerr << x;}void print(double x) {cerr << x;}/*#########++++++++++++###++++++++++++++++#
*/void print/*#####+++++++++----+++++++++###+---------------.............--............................*/(long double x) {cerr << x;}void print/*######################----++++++#####+++++++++++++++++
*//*###############+++++++------+++++++++##++----------------...............---..........................*/(string x) {cerr << '\"' << x << '\"';}template <size_t N>/*#+---+++++#####+++++++++++++++++
*/void print/*#####+++++--------++++++++++++++++-------------...............----............................-*/(bitset<N> x) {cerr << x;}void print(vector<bool> v) { /*#---++++*//*##++++++++++++++++-
*/int f = 0;/*#####++++--------+++++++++-------+++++++-------.................------...........................-*/cerr << '{';for (auto &&i : v)cerr/*###################----+++*//*##+++++++++++++++++
*//*###############+++-------++++++++++++++----+++++++-------.................--------.............................*/<< (f++ ? "," : "") << (i ? "T" : "F");/*###########---++++*//*##+++++++++++++++++
*//*##############++++----+++++++++++++++++++++-++++++--------................-----------.............................*/cerr << "}"; } template <typename T>void print/*#----++++#####+++++++++++++++++
*/(T &&x);/*######+++----++++++++++++++++---++++++++++---------...............-------------------.........................*/template <typename T>void print/*############----+++*//*##+++++++++++++++++
*//*##############++++-+++++++++++++++-------+++++++-----------...............----------------------......................--.*/(vector<vector<T>> mat);/*################---++++*//*##+++++++++++++++++
*//*##############+++++++++++++++++++---------++++++-----------...............----+++----------------...........................*//*####################################+++++++*//*###++++++++++++++++#
*//*##############+++++++++++++++++++--------+++++++--++-------..............----++++++-----------------..........................--*//*###############################++++++++*//*###++++++++++++++###
*//*###############++++++++++++++++++--------++++++++-++--------.............---++++++++---------------------.........................*//*#############################++++++++*//*###++++++++++++++++#
*//*##############+++++++++++++++++++---------+++++++-+++-------............---++++++++++-----------------------.......................-.-*//*#########################++++++++*//*####++++++++++++++++
*//*##############++++++++++++++++++++--------++++++++++++-------------....---+++++++++++++------------------------------------.....--....---*//*######################++++++++*//*####++++++++++++++++
*//*##############+++++++++++++++++++++++++---+++#++++++++++++--------------++++++++++++++++-----------------------------------------.--..-...--*//*###################++++++*//*######++++++++++++++++
*//*##############+++++++++++++++++++++++++++-+++#++++++++++####++++------++++++++++++++++++---------------------------------------------.......---*//*################++++++*//*######++++++++++++++++
*//*##############+++++++++++++++++++++++++----++#+++++++++*//*##++++++++++++++++++++++++++++-------------------------------------------------------.-*//*#############++++++*//*######++++++++++++++++
*//*##############+++++++++++++++++++++++++++++++++++++++++*//*#####++++++++++++++++++++++++++------------------------------------------------------...-*//*############+++++*//*######++++++++++++++++
*//*##############+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------*//*########################++++++++++++++++
*//*###############+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------++--------------------*//*#######+++*//*######++++++++++++++++
*//*###############++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------+++++++++++-----------------------*//*##################++++++++++++++++
*//*################+++++++++++++++++++++++++++++++++++++++++++-----++++++++++++++++++++++++++++++-------------------+++++++++++++++++++++---------------------------*//*##############++++++++++++++++
*/template <typename T, size_t N, size_t M>void print(T (&mat)[N][M]);template <typename F, typename S>void print(pair<F, S> x);template <typename T, size_t N>struct Tuple;template <typename T>/*####
*/struct Tuple<T, 1>;template <typename... Args>void print(tuple<Args...> t);template <typename... T>void print(priority_queue<T...> pq);template <typename T>void print(stack<T> st);/*###############
*/template <typename T>void print(queue<T> q); template <typename T>void print(T &&x) { int f = 0;cerr << '{';for (auto &&i : x)cerr << (f++ ? "," : ""), print(i);cerr << "}"; }/*####################
*/template <typename T>void print(vector<vector<T>> mat) {int f = 0;cerr << "\n~~~~~\n";for (auto &&i : mat) {cerr << setw(2) << left << f++, print(i), cerr << "\n"; }cerr << "~~~~~\n"; }/*##########
*/template <typename T, size_t N, size_t M>void print(T (&mat)[N][M]) {int f = 0;cerr << "\n~~~~~\n";for (auto &&i : mat) {cerr << setw(2) << left << f++, print(i), cerr << "\n"; }/*#################
*/cerr << "~~~~~\n"; }template <typename F, typename S>void print(pair<F, S> x) {cerr << '(';print(x.first);cerr << ',';print(x.second);cerr << ')'; }template <typename T, size_t N>struct Tuple{/*###
*/static void printTuple(T t) {Tuple<T, N - 1>::printTuple(t);cerr << ",", print(get<N - 1>(t)); } };template <typename T>struct Tuple<T, 1> {static void printTuple(T t) { print(get<0>(t)); } };/*###
*/template <typename... Args>void print(tuple<Args...> t) {cerr << "(";Tuple<decltype(t),sizeof...(Args)>::printTuple(t);cerr << ")"; }template <typename... T>void print(priority_queue<T...> pq) {/*#
*/int f = 0;cerr << '{';while (!pq.empty())cerr << (f++ ? "," : ""),print(pq.top()), pq.pop();cerr << "}"; }template <typename T>void print(stack<T> st) {int f = 0;cerr << '{';while (!st.empty())/*##
*/cerr << (f++ ? "," : ""),print(st.top()), st.pop();cerr << "}"; }template <typename T>void print(queue<T> q) {int f = 0;cerr << '{';while (!q.empty())cerr << (f++ ? "," : ""),print/*###############
*/(q.front()), q.pop();cerr << "}"; }void printer(const char *) {} template <typename T, typename... V>void printer(const char *names, T &&head, V &&...tail) {int i = 0;for (size_t bracket = 0;/*####
*/names[i] != '\0' and(names[i] != ',' or bracket != 0); i++)if (names[i] == '(' or names[i] == '<' or names[i] == '{')bracket++;else if (names[i] == ')' or names[i] == '>' or names[i] == '}')/*#####
*/bracket--;cerr.write(names, i) << " = ";print(head);if (sizeof...(tail))cerr << " ||",printer(names + i + 1, tail...);else cerr << "]\n"; }void printerArr(const char *) {} /*#######################
*/template <typename T, typename... V>void printerArr(const char *names, T arr[], size_t N, V... tail) {size_t ind = 0;for (; names[ind] and names[ind] != ','; ind++)cerr << names[ind];/*############
*/for (ind++; names[ind] and names[ind] != ','; ind++) ;cerr << " = {";for (size_t i = 0; i < N; i++)cerr << (i ? "," : ""), print(arr[i]);cerr << "}";if (sizeof...(tail))cerr << " ||",/*############
*/printerArr(names + ind + 1, tail...);else cerr << "]\n"; } }/*########################################################################################################################################
*/
#ifndef ONLINE_JUDGE
#define debug(...) std::cerr << __LINE__ << ": [", __DEBUG_UTIL__::printer(#__VA_ARGS__, __VA_ARGS__)
#define debugArr(...) std::cerr << __LINE__ << ": [", __DEBUG_UTIL__::printerArr(#__VA_ARGS__, __VA_ARGS__)
#else
#define debug(...)
#define debugArr(...)
#endif
using namespace std;
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int t;
cin >> t;
while(t--){
int n, k, q; cin >> n >> k >> q;
int a[n + 1];
for(int i = 1; i <= n; i++) {
cin >> a[i];
}
map <int,int> m;
multiset <int> tot;
for(int i = 1; i <= n; i++) {
tot.insert(0);
}
for(int i = 1; i < k; i++){
tot.erase(tot.find(m[a[i] - i]));
m[a[i] - i]++;
tot.insert(m[a[i] - i]);
}
int ret[n + 1];
for(int i = k; i <= n; i++){
tot.erase(tot.find(m[a[i] - i]));
m[a[i] - i]++;
tot.insert(m[a[i] - i]);
int p = i - k + 1;
ret[p] = k - *tot.rbegin();
tot.erase(tot.find(m[a[p] - p]));
m[a[p] - p]--;
tot.insert(m[a[p] - p]);
}
while(q--){
int l, r ; cin >> l >> r;
cout << ret[l] << endl;
}
}
}