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; }
时间: 2024-10-13 18:10:45