比赛 |
NOIP模拟赛by mzx Day1 |
评测结果 |
TTTTTTTTTT |
题目名称 |
昆特-冠位指定 |
最终得分 |
0 |
用户昵称 |
NewBee |
运行时间 |
10.014 s |
代码语言 |
C++ |
内存使用 |
1.66 MiB |
提交时间 |
2016-10-19 21:47:06 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
const int maxn=100010;
struct Node{
long long v,x;
Node(){;}
Node(long long a,long long b){ v=a; x=b; }
}my[maxn];
bool comp(const Node &a,const Node &b){
if(a.v<b.v) return 1;
if(a.v>b.v) return 0;
return a.x>b.x;
}
long long n,m,k,sum;
int main(){
freopen("gwent_grandorder.in","r",stdin);
freopen("gwent_grandorder.out","w",stdout);
long long m,n,k;scanf("%lld%lld%lld",&m,&n,&k);
for(long long i=1;i<=m;i++){
long long a,b,c,d,e;scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&e);
sum+=d;
}
for(long long i=1;i<=n;i++){
long long a,b,c,d,e;scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&e);
my[i].v=a; my[i].x=d;
}
sort(my+1,my+n+1,comp);
long long cnt=0,ans=my[k].v;
for(long long i=1;i<=k;i++){
cnt+=my[i].x;
}
if(cnt>=sum){ printf("%lld\n",ans); return 0; }
bool ok=0;
for(long long i=k+1;i<=n;i++){
cnt+=my[i].x;
ans=max(ans,my[i].v);
if(cnt>=sum){ ok=1; printf("%lld\n",ans); return 0; }
}
if(!ok){
printf("SingleDogMZX\n"); return 0;
}
//system("pause");
return 0;
}