您的位置:首页 > 其它

十年生死

2016-10-01 20:59 330 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: