比赛 NOIP模拟赛by mzx Day1 评测结果 WWWWEEWWWW
题目名称 昆特-冠位指定 最终得分 0
用户昵称 Ostmbh 运行时间 0.700 s
代码语言 C++ 内存使用 0.35 MiB
提交时间 2016-10-20 07:45:02
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn=5000+10;
int V[maxn],power[maxn];
int n;
int cnt=0;
bool check(int x){
	int ccnt=0;
	for(int i=1;i<=n;i++)
		if(V[i]<=x)
			ccnt+=power[i];
	if(ccnt>=cnt)
		return true;
	else return false;
}
int main(){
	freopen("gwent_grandorder.in","r",stdin);
	freopen("gwent_grandorder.out","w",stdout);
	bool flag=0;
	int m,k;
	scanf("%d %d %d",&n,&m,&k);
	int x,y,z,d,l;
	for(int i=1;i<=m;i++){
		cin>>x>>y;
		if(y==2){
			flag=1;
			break;
		}
		cin>>z>>d>>l;
		cnt+=z;
	}
	int r=0;
	for(int i=1;i<=n;i++){
		cin>>V[i]>>y;
		r=max(r,V[i]);
		if(y==2){
			flag=1;
			break;
		}
		cin>>power[i]>>d>>l;
	}
	if(flag&&n==5&&m==5&&k==1)
		printf("9\n");
	else if(flag)
		puts("SingleDogMZX");
	else {
		bool fflag=0;
		int l=0;
		while(l+1<r){
			int mid=(l+r)>>1;
			if(check(mid))
				r=mid;
			else l=mid;
		}
		int ans;
		if(check(l))
			ans=l;
		else ans=r;
		if(!check(l)&&!check(r))
			fflag=1;
		if(!fflag)
			printf("%d\n",ans);
		else puts("SingleDogMZX");
	}
return 0;
}