2014年3月6日 星期四
[HOJ] 336 - 廷廷的大秘寶
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
#include<vector>
using namespace std;
struct T{
int x,k;
friend bool operator < (T a,T b){
return a.x<b.x;
}
}out;
priority_queue<T> que;
struct P{
int x,y,r,k;
};
vector<P> arr;
int cmp(P a,P b){
if(a.x!=b.x)
return a.x<b.x;
return a.y>b.y;
}
int is[100005]={0};
int main(){
int n,m,i,j,x,y,add=0,ans=0;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++){
scanf("%d%d",&x,&y);
arr.push_back((P){x,1,y,i});
arr.push_back((P){y,-1,y,i});
}
sort(arr.begin(),arr.end(),cmp);
for(i=0;i<n*2;i++){
if(arr[i].y==1){
add++;
que.push((T){arr[i].r,arr[i].k});
}
else if(is[arr[i].k]==0) add--;
//printf("%d..",add);
if(add==m){
ans++;
add--;
out=que.top();
que.pop();
//printf(",,%d,,",que.size());
is[out.k]=1;
}
}
printf("%d\n",ans);
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言