https://codeforces.com/contest/2014/problem/D
#include <iostream>
#include <queue>
#include <cmath>
#include <array>
#include <sstream>
#include <vector>
#include <deque>
#include <iterator>
#include <numeric>
int main() {
int o;
std::cin>>o;
while (o--){
int n,d,k;
std::cin>>n>>d>>k;
std::vector<int> vl(n+1,0);
std::vector<int> vr(n+1,0);
while (k--){
int l,r;
std::cin>>l>>r;
l--;
vl[l]++;
vr[r]++;
}
std::partial_sum(vr.begin(),vr.end(),vr.begin());
std::partial_sum(vl.rbegin(),vl.rend(),vl.rbegin());
int max=-1;
int imx=-1;
int min=INT_MAX;
int imn=-1;
for (int i = 0; i <= n - d; ++i) {
int v=vr[i]+vl[i+d];
if (v>max){
max=v;
imx=i+1;
}
if (v<min){
min=v;
imn=i+1;
}
}
std::cout<<imn<<" "<<imx<<'\n';
}
return 0;
}
评论区