十年生死

http://west14.openjudge.cn/20161001/C/

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> 
using namespace std;
int n,m,k;
struct  Edge{
    int si,ti,vi;
}a[500000];
int f[500000],z[500000];
int find(int x)
{
    int sum=0;
    memset(z,0,sizeof z );
    for(int i=1;i<=n;i++)
    {
        if(a[i].ti>=x&&a[i].si<=x)
          z[++sum]=-a[i].vi;
    }
    sort(z+1,z+sum+1);
    return -z[k];
}
int main()
{
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i].si>>a[i].ti>>a[i].vi;
        for(int j=a[i].si;j<=a[i].ti;j++)
          f[j]++;    
    }
    for(int i=1;i<=m;i++)
    {
        if(f[i]<k) cout<<"-1"<<endl;
        else cout<<find(i)<<endl;        
    } 
    return 0;
}
View Code

 

posted @ 2016-10-01 20:59  浮华的终成空  阅读(145)  评论(0编辑  收藏  举报

Contact with me