首先需要知道中位数的定义:
样例解析
根据中位数计算公式:
可以得知样例的中位数为3:
code
#include<bits/stdc++.h>
using namespace std;
int main( )
{
int n,m;cin>>n>>m;
vector<int> a(n,0);
for(int i=1;i<=m;i++)
{
int l,r;cin>>l>>r;
a[l]++,a[r+1]--;
}
//恢复
for(int i=1;i<=n;i++)
{
a[i]=a[i]+a[i-1];
}
sort(a.begin(),a.end());
//判断
if(n%2==0)
{
cout<<(a[n/2]+a[n/2+1])/2;
}
else cout<<a[n/2];
return 0;
}