比赛 |
NOIP模拟赛by mzx Day1 |
评测结果 |
TTTTTTTTTT |
题目名称 |
昆特-冠位指定 |
最终得分 |
0 |
用户昵称 |
可以的. |
运行时间 |
10.027 s |
代码语言 |
C++ |
内存使用 |
1.84 MiB |
提交时间 |
2016-10-19 21:46:12 |
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <deque>
#define Mem(a,v) memset(a,v,sizeof(a))
using namespace std;
/*
freopen(".in","r",stdin);
freopen(".out","w",stdout);
getchar(); getchar();
return 0;
*/
#define maxn 100010<<1
typedef long long LL;
int N,M,K;
LL sum=0;
void read(int &res){
int x,f=1; char ch;
while(ch=getchar(),ch<'0'||ch>'9')if(ch=='-')f=-1;
x = ch - 48;
while(ch=getchar(),ch>='0'&&ch<='9')x=x*10+ch-48;
res = x * f;
}
struct Node
{
int v,x;
Node(){;}
Node(int a,int 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;
if(a.x > b.x) return 1;
return 0;
}
int main(){
freopen("gwent_grandorder.in","r",stdin);
freopen("gwent_grandorder.out","w",stdout);
read(M); read(N); read(K);
for(int i=1;i<=M;i++){
int a,b,c,d,e;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
sum += (LL)d;
}
for(int i=1;i<=N;i++){
int a,b,c,d,e;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);
_my[i].v = a; _my[i].x = d;
}
sort(_my+1,_my+1+N,Comp);
LL cnt = 0 ;int ans = _my[K].v;
for(int i=1;i<=K;i++){
cnt += (LL)_my[i].x;
}
if(cnt >= sum){ printf("%d\n",ans); return 0; }
bool ok = 0;
for(int i=K+1;i<=N;i++){
cnt += (LL)_my[i].x;
ans = max(ans , _my[i].v);
if(cnt >= sum){ ok = 1; printf("%d\n",ans); return 0; }
}
if(!ok){
puts("SingleDogMZX"); return 0;
}
return 0;
}