比赛 |
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;
}