比赛 EYOI暨SBOI暑假快乐赛2nd 评测结果 WAAAWAWWWWAWWWWAWWAWW
题目名称 最近的母牛获胜 最终得分 33
用户昵称 ➥Q小白小黑233 运行时间 5.927 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-06-26 10:46:30
显示代码纯文本
#include<stdio.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<utility>
#include<queue>

#define MAX 200002
using namespace std;
typedef long long ll;


pair<int,int> pa[MAX]={};
int cmp(int a,int b){
	return a<b;
}
int cmp2(pair<int,int> a,pair<int,int> b){
	return a<b;
}
int K,M,N;
int p[MAX]={0},t[MAX]={0},f[MAX]={0};
int g[MAX]={0};//间隔,第i个的后面 
int bp[MAX]={0},bt[MAX]={0},bf[MAX]={0};
int main(void){
	freopen("Closest_Cow_Wins.in","r",stdin);
	freopen("Closest_Cow_Wins.out","w",stdout);
	scanf("%d%d%d",&K,&M,&N);
	int i,j,k;
	priority_queue<pair<int,int> > q;
	priority_queue<pair<int,int> > q2;
	priority_queue<pair<int,int> > q3;
	for(i=1;i<=K;i++){
		scanf("%d%d",&p[i],&t[i]);
		bp[i]=p[i];
		q.push(make_pair(t[i],p[i]));
	}
	q2=q;
	for(i=1;i<=M;i++){
		scanf("%d",&f[i]);
		bf[i]=f[i];
	}
	sort(bf+1,bf+M+1,cmp);
	sort(bp+1,bp+K+1,cmp);
	sort(pa+1,pa+M+1,cmp2);
//	
//	for(i=1;i<=M;i++){
//		cout<<bf[i]<<endl;
//	}
	
	
//	for(i=1;i<=K;i++){
//		cout<<q.top().first<<' '<<q.top().second<<endl;
//		q.pop();
//	}

//	for(i=1;i<=K;i++){
//		cout<<pa[i].first<<' '<<pa[i].second<<endl;
//	}
	int fir=1;
	for(i=1;i<=M;i++){
		for(j=fir;j+1<=K;j++){
			if(bf[i]>=bp[j]&&bf[i]<=bp[j+1])
				g[j]++;
			if(bf[i]>bp[j+1]){
				fir++;
				break;
			}
		}
	}
	ll num=0;
	for(i=1;i+1<=K;i++){
		if(g[i]==0){
//			pa={
			q.push(make_pair(bt[i]+bt[i+1],MAX+bt[i]+bt[i+1]));
		}
	}
	for(i=1;i<=N;i++){
		pair<int,int> tpa=q.top();
		num+=tpa.first;
		q.pop();
	}
	cout<<num<<endl;
	return 0;
}